编程语言
首页 > 编程语言> > 如何在底图上绘制文本,python

如何在底图上绘制文本,python

作者:互联网

我想在我的地图上放一个文字,比如the satellite imagery.

import numpy as np, matplotlib.pyplot as plt    
from mpl_toolkits.basemap import Basemap    

m = Basemap(resolution='l',projection='geos',lon_0=-75.)    
fig = plt.figure(figsize=(10,8))    
m.drawcoastlines(linewidth=1.25)    
x,y = m(-150,80)
plt.text(x,y,'Jul-24-2012')

但是,“7月24日至2012年”的文字没有出现在我的身上.
我想这是因为地图不是笛卡尔坐标.

那么,有人可以帮我弄明白怎么做吗?

解决方法:

您的文字没有显示的原因是您试图绘制一个对您正在使用的地图投影无效的点.

如果您只是想将文本放在轴坐标中的某个点(例如图的左上角),请使用注释,而不是文本.

事实上,你真的想要使用文本是相当罕见的.注释更加灵活,实际上是为了注释绘图,而不是仅仅将文本放在数据坐标的x,y位置. (例如,即使您想要在数据坐标中注释x,y位置,您通常也希望文本偏移距离点而不是数据单位.)

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

m = Basemap(resolution='l',projection='geos',lon_0=-75.)

fig = plt.figure(figsize=(10,8))

m.drawcoastlines(linewidth=1.25)

#-- Place the text in the upper left hand corner of the axes
# The basemap instance doesn't have an annotate method, so we'll use the pyplot
# interface instead.  (This is one of the many reasons to use cartopy instead.)
plt.annotate('Jul-24-2012', xy=(0, 1), xycoords='axes fraction')

plt.show()

标签:python,matplotlib,matplotlib-basemap
来源: https://codeday.me/bug/20190612/1227023.html