在子图之间共享等高线图属性

时间:2009-10-28 22:47:43

标签: plot matplotlib

我正在绘制几个等高线图,以便可视化某些功能的时间演变。我希望每个轮廓的值和颜色在所有子图之间共享,但每次添加一个新的子图时,都会重新计算轮廓值(如下图所示),因此它们之间的任何比较都是没有意义的。

Contour plots with colorbars http://www.inf.utfsm.cl/~rbonvall/colorbar-and-contour-plots.png

我尝试在每个子图实例上手动设置cmapcolorbaraxes属性的不同组合,但没有成功。如何在所有子图之间共享轮廓图属性?换句话说,如何为所有子图获得相同的颜色条?

1 个答案:

答案 0 :(得分:2)

您可以直接指定要在等高线图中使用的轮廓值。这是一个例子:

alt text

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-1.2, 1.2, .025)
y = np.arange(-1.2, 1.2, .025)
X, Y = np.meshgrid(x, y)
Z = np.cos(X)*np.cos(Y)
Z = Z*Z

plt.subplot(1,2,1)
CS = plt.contour(X, Y, Z)   # set levels automatically
plt.clabel(CS, inline=1, fontsize=10)
plt.subplot(1,2,2)
CS = plt.contour(X, Y, Z-.1, CS.levels)  # set levels as previous levels
plt.clabel(CS, inline=1, fontsize=10)
plt.show()