2016-03-08 67 views
1

我发现了一个锤子投影图,我一直试图复制。 锤子投影本身不是问题,但我不知道如何在地图下面生成轴。事实上,我不知道如何绘制(箭头和文字)图中的某些东西。任何人都可以帮助一个想法如何复制与轴底部的图形? enter image description herematplotlib锤子投影绘制外地图

回答

0

您可以使用transform关键字在轴坐标而不是数据坐标中绘制事物。如果您构建了轴对象axsee here)来绘制例如左下角的文本字符串“180°”,你可以使用

ax.text(0, 0, '180$^\circ$', ha='left', transform=ax.transAxes) 

transform=ax.transAxes设置坐标系统,使该点(0, 0)是在左下,(1, 0)在右下角,(1, 1)右上方,并(0, 1)在无论轴在数据坐标中跨越哪个值。

要绘制箭头,您可以等效使用ax.arrow,也可以使用transform关键字。

+0

我尝试了您的建议解决方案,但看起来地图下面没有足够的空间来绘制箭头和文本。如果将箭头延伸到地图的中间底部,则箭头看起来会截断,但实际上它将与地图本身重叠。下面是代码: '无花果= plt.figure() RECT = 0.05,0.05,0.9,0.9 AX = fig.add_axes(矩形) 米=底图(投影= '锤',lon_0 = 0,分辨率='c') m.drawparallels(np.arange(-90。,120.,30。)) ax.text(0,0,'180 $^\ circ $',ha ='left',transform (0.05,0.0,0.1,0,head_width = 0.05,head_length = 0.05,fc ='k',ec ='k',transform = ax.transAxes)' – user3578925

+0

尝试使轴相对于图更小,例如'ax = fig.add_axes([0.2,0.2,0.6,0.6])'给出了你的坐标轴两边空白字符大小的1/5(= 0.2)。这应该为你的注释提供充足的空间。 – wsj

+0

谢谢你试图帮助我,但它仍然无法正常工作。箭头仍然是截止的。我的代码,根据你的建议是: '从mpl_toolkits.basemap进口底图 进口numpy的作为NP 进口matplotlib.pyplot作为PLT 无花果= plt.figure() AX1 = fig.add_axes([0.2,0.2, 0.6,0.6]) m =底图(projection ='hammer',lon_0 = 0,resolution ='c') #绘制平行线和经线。 m.drawparallels(np.arange(-90。,120.30)) m.drawmeridians(np.arange(0.,420.,60。)) ax1.arrow(0,0,0.5, 0,head_width = 0.05,head_length = 0.05,fc ='k',ec ='k',transform = ax1.transAxes) plt.show()' 你能试试看吗? – user3578925