通常,当我想要显示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()
答案 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
值。