我正在尝试使用matplotlib绘制极坐标中的流线。然而,一些问题似乎出现在极地情节的范围内。这是一个简短的例子来说明问题:
import numpy as np
import matplotlib.pyplot as plt
r1 = np.linspace(0.5, 1, 50)
r2 = np.logspace(np.log10(0.5), np.log10(1.), 50)
t = np.linspace(0, 2*np.pi, 360)
r = r1
tt, rr = np.meshgrid(t, r)
v = 0*rr
u = rr
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1,1,1, projection='polar')
ax.streamplot(t, r, v, u, density=1., color='k', linewidth=3)
plt.show()
plt.close()
使用r=r1
(linspace),没有问题。但是对于r=r2
,绘图的径向范围是错误的,并且在[0.5,0.82]而不是[0.5,1。]中变化。
我的代码出了什么问题?
答案 0 :(得分:0)
从matplotlib.pyplot.streamplot
的{{3}}开始,x, y
必须均匀分布。因此,您可以使用scipy的doc插入数据。 interpolants可能符合您的需求。
[编辑]这是通过插值在griddata SO问题中解决的。