我有一个使用matplotlib生成的轮廓图。
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-10, 10, 100)
Y = np.linspace(-10, 10, 100)
XX, YY = np.meshgrid(X, Y)
ZZ = XX**2 + YY**2
levels = np.linspace(0, 200, 10)
fig, ax = plt.subplots()
cf = ax.contourf(X, Y, ZZ, levels=levels)
cbar = fig.colorbar(cf)
这将生成此图:
现在想象一下,由于某种原因,该图形是通过某些函数调用传递给用户的,而用户仅获得ax
,fig
和cbar
对象。 / p>
更新:之所以要这样做,是因为我必须以自动化方式制作大量的轮廓图。我已经在后端自动创建了轮廓图(在上面被模糊地描述为“函数调用”)。但是对于某些地块,需要进行一些细微的修改才能生成精美的地块。因此,如果我需要从+400个数字中调整的几个数字可以通过ax
,{{1 }}和fig
对象。
现在只处理那些对象,我要放大并重新调整颜色栏和色阶。
放大:
cbar
更改颜色条和刻度的限制:
ax.set_xlim(2.5, 7.5)
ax.set_ylim(2.5, 7.5)
更改颜色条本身的比例:
new_clim = (0, 100)
# find location of the new upper limit on the color bar
loc_on_cbar = cbar.norm(new_clim[1])
# redefine limits of the colorbar
cf.colorbar.set_clim(*new_clim)
cf.colorbar.set_ticks(np.linspace(*new_clim, 10))
# redefine the limits of the levels of the contour
cf.set_clim(*new_clim)
# updating the contourplot
cf.changed()
现在这里有一些问题:
非常感谢!