我正在使用matplotlib中的函数contourf
实现一个循环来生成等高线图。该研究的目的是找出该地区的任何移动模式。但是,产生的图表具有不同的色标。其中一些有-4到4而有些有-1.5到9.0等等,这使得解释毫无意义。如何将此色标修正为-5.0到9.0?
此外,当我尝试导出绘图时,每个绘图中的颜色栏数量会增加。例如,循环中的第二个图有2个颜色条,第五个图有5个颜色条,依此类推。
到目前为止我做了什么:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from numpy import linspace
from numpy import meshgrid
i=0
while i<len(inputdata):
map = Basemap(projection='cyl', llcrnrlat=5.125, llcrnrlon=60.125, urcrnrlat=34.875, urcrnrlon=94.875)
data = np.array(inputdata[i])
x = linspace(map.llcrnrx, map.urcrnrx, data.shape[1])
y = linspace(map.llcrnry, map.urcrnry, data.shape[0])
xx, yy = meshgrid(x, y)
map.contourf(xx, yy, data, cmap = 'summer_r')
plt.colormap()
plt.savefig('filename.jpg',dpi=300)
i+=1
答案 0 :(得分:1)
要更改颜色栏的限制,您可以在致电public function assignCustomerWithAddressChange
之前致电plt.clim()
并手动指定范围:
plt.colorbar
您还可能希望在保存后清除该图,以避免使用from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from numpy import linspace
from numpy import meshgrid
i=0
while i<len(inputdata):
map = Basemap(projection='cyl', llcrnrlat=5.125, llcrnrlon=60.125, urcrnrlat=34.875, urcrnrlon=94.875)
data = np.array(inputdata[i])
x = linspace(map.llcrnrx, map.urcrnrx, data.shape[1])
y = linspace(map.llcrnry, map.urcrnry, data.shape[0])
xx, yy = meshgrid(x, y)
map.contourf(xx, yy, data, cmap = 'summer_r')
plt.clim(-5, 9) # manually setup the range of the colorscale and colorbar
plt.colormap()
plt.savefig('filename.jpg',dpi=300)
plt.clf()
i+=1