matplotlib中的平滑轮廓图来自3个不同大小的列表

时间:2013-08-22 17:26:22

标签: python matplotlib plot contour

我有3个不同大小的列表,例如

x=[1,2,3,4,5,6]

在x = 1和x = 2之间

y=[1,2,3,4,5]
z=[100,200,300,400,500]
y and z are of same length

在x = 2和x = 3之间

y=[1,2,3,4,5]
z=[300, 350, 400, 600, 700]
y and z are of same length

因此,在两个x值之间,y和z的大小相同。但是z的值在x的每个间隔为每个y改变。我想生成一个像sample plot这样的图。

x = 1,x = 2之间的区域将被z的色标填充。对于所有x区间,z的颜色条从min(z)到max(z)变化。

如果您请分享您的建议,将会有所帮助。

谢谢,

1 个答案:

答案 0 :(得分:0)

您想要的内容似乎是带有contour的{​​{1}}地块。你可以这样做:

colorbar

X, Y = np.meshgrid(x, y, copy=False)
Z = function(X, Y) # I don't know how you are getting the z values from...

import matplotlib.pyplot as plt
plt.contour(X, Y, Z) # non-filled contour

并创建plt.contourf(X, Y, Z) # filled contour

colorbar

check the documentation for more details and examples.