【发布时间】:2022-01-12 20:36:14
【问题描述】:
我正在搜索从同一个图中具有不同轴 X、Y 和数据 Z 的颜色图或轮廓函数绘制多个图形(这里是 2 个)。但是,我只想用一个颜色条为所有图表显示每个数据的最大值。
在此示例中,我创建了一个图,在其中添加了每个图,但第二个图会覆盖第一个图,无论其数据是更低还是更高。
import matplotlib.pyplot as plt
import numpy as np
a = [1,0.25]
fig = plt.figure(1)
ax = fig.gca()
for i in range(2):
x = np.linspace(-3, 3, 51)
y = np.linspace(-2*a[i], 2*a[i], 41)
X, Y = np.meshgrid(x, y)
if i == 0:
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
else:
Z = 0.5*np.ones((41,51))
graph = ax.contourf(X,Y,Z)
bar = fig.colorbar(graph)
plt.show()
Figure 1 displayed by the code
这是我要显示的内容:
非常感谢, 特里斯坦
【问题讨论】:
-
是否有意让第一次迭代中的 y 值仅从 -0.5 变为 0.5,而第二次迭代中的 y 值从 -2 变为 2?
-
是的,这是为了表明我可以拥有不同网格和数据的图表。我不能简单地计算和比较以获得最大 Z 并按 X 和 Y 绘制,因为每个图的 X 和 Y 都不相同。
-
好的,所以在我看来,您希望在所有 x 值上设置一条腰带,但 y 介于 -0.5 和 0.5 之间,其中图形的高度为 0.5 或 Z 函数的高度,取 Z 值最大的那个。这是正确的吗?
-
在这个例子中是的,但我会给出一个适合任何 Z 和 X-Y 比例值的答案。我在帖子中添加了一张关于我想要什么的图片,用油漆制作。
标签: python matplotlib colormap contourf