Python / PyPlot-如何在plt.imshow上指定x / y轴?

时间:2014-10-22 03:40:36

标签: python matplotlib

通常,当我想要显示3D数据时,我会执行以下操作

import numpy as np
import matplotlib.pyplot as plt

X, Y = np.mgrid[:10, :20]
z = x**2 + y
plt.imshow(z)
plt.show()

这个问题是我经常要设置x和y变量而不是“像素”。我知道plt.contourf做了我想做的事,但问题在于质量是否与plt.imshow

一样好

我正努力解决的问题是让plt.contourf语法适用于plt.imshow

有什么想法吗?

编辑:

解决方案也应该适用于以下用例:

import numpy as np
import matplotlib.pyplot as plt

R, P = np.mgrid[:10, :2*np.pi:np.pi/50]
plt.contourf(R*np.cos(P), R*np.sin(P), R) # <--- need better function
# plt.imshow(R*np.cos(P), R*np.sin(P), R) #      something like this
plt.show()

1 个答案:

答案 0 :(得分:0)

我发现做我想做的最好方法是使用plt.contourf

所以以下会做我想要的。

import numpy as np
import matplotlib.pyplot as plt

R, P = np.mgrid[:10, :2*np.pi:np.pi/50]
N = 50
plt.contourf(R*np.cos(P), R*np.sin(P), R, N) # <--- need better function
plt.pcolormesh(R*np.cos(P), R*np.sin(P), R) # <--- exactly what I want
# plt.imshow(R*np.cos(P), R*np.sin(P), R) #      something like this
plt.show()

调整N可以在contourf中为您提供足够好的图片。我唯一不喜欢的是你可能需要调整N值。