我如何使用yaxis和xaxis,我想要的并且与绘图中的数据无关?例如,我想使用以下代码将世界 Map 绘制为图像:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.imshow(world_map)
结果,我得到了xaxis:0 ... image_size_x从左到右,yaxis:0 ... image_size_y从上到下 . 我需要做些什么才能将其轴范围更改为纬度和经度格式?因此,无论图中绘制的实际数据是什么,图形轴都应包含两个字段(x和y)的度数(从90到-90) . 设置
pylab.ylim([90,-90])
将图像移动到底部90像素,并将图像的y维度减小到image_size_y / 90的比例 . 所以它不起作用,因为xlim / ylim处理数据,如图所示 .
2 回答
假设(基于你的帖子)图像很好但是轴标签关闭了,试着玩这个,这将手动实现轴标签:
我使用的技巧是找出你想要多少标签(这里,它的90:180/2),在范围(0,imagesize)中均匀添加标记,然后手动执行标签 . 这是一个通用公式:
简而言之:将
extent
关键字与imshow
一起使用 .在代码中:
如果您的 Map 是颠倒的,请将关键字参数
origin='lower'
添加到imshow
. 需要aspect='auto'
才能使 Map 在两个维度上独立展开 . (add_subaxis
的其余行只是为了使代码更加面向对象,真正的牛肉在关键字参数中 . )如果未给出
imshow
图像的范围,则认为您希望每个像素都位于位置(0,0),(0,1),...,(Nx-1,Ny-1)的中心位置,然后图像范围将从(-.5,-.5)开始 .