如何修复 matplotlib 中色标的限制?
How to fix the limits of color scale in matplotlib?
我正在使用 matplotlib 中的函数 contourf
实现一个循环来生成等高线图。 objective 的研究是找出该地区的任何移动模式。但是,生成的图具有不同的色标。其中一些是 -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
为了改变颜色条的范围,您可以在调用plt.colorbar
之前调用plt.clim()
并手动指定范围:
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
您可能还想在保存后清除图形以避免使用 plt.clf()
出现多个颜色条
我正在使用 matplotlib 中的函数 contourf
实现一个循环来生成等高线图。 objective 的研究是找出该地区的任何移动模式。但是,生成的图具有不同的色标。其中一些是 -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
为了改变颜色条的范围,您可以在调用plt.colorbar
之前调用plt.clim()
并手动指定范围:
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
您可能还想在保存后清除图形以避免使用 plt.clf()