我正在尝试使用 matplotlib 复制某个情节:它应该看起来像这样。
我已经看到可以使用 PolarAxes 绘制径向点:例如,我使用以下代码段制作了一个非常简单的极坐标图:
import matplotlib.pyplot as plt
fig = plt.figure()
# Set the axes as polar
ax = fig.add_subplot(111, polar=True)
# Draw some points
ax.plot([0],[1], 'o')
ax.plot([3],[1], 'o')
ax.plot([6],[1], 'o')
# Go clockwise
ax.set_theta_direction(-1)
# Start from the top
ax.set_theta_offset(1.570796327)
plt.savefig('test.png')
我得到这样的东西:
所以我的问题是:有没有办法像第一个图那样画线,并调整宽度以适应整个圆周?还有一些关于如何处理颜色的提示将不胜感激。
更新:必须绘制的数据非常简单:每个轨道都是一个浮点数组,其范围在 0 到 9 之间(颜色来自颜色图 RdYlGn)。数组长度是 96 的倍数。
更新2:那是我用过的剪辑
# mydata is a simple list of floats
a = np.array([[x for i in range(10)] for x in mydata])
# construct the grid
radius = np.linspace(0.2,0.4,10)
theta = np.linspace(0,2*np.pi,len(a))
R,T = np.meshgrid(radius,theta)
fig = plt.figure()
ax = fig.add_subplot(111, polar = True)
# plot the values using the appropriate colormap
ax.pcolor(T,R,a,cmap=cm.RdYlGn)