如何修复matplotlib中色标的限制?

时间:2018-05-10 10:39:53

标签: python matplotlib colorbar contourf

我正在使用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

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

出现多个颜色条