是否可以在Python中反转雷达图上的轴方向?

是否可以在Python中反转雷达图上的轴方向?,python,matplotlib,charts,data-visualization,radar-chart,Python,Matplotlib,Charts,Data Visualization,Radar Chart,我试图用下面的代码绘制一张雷达图 我的目标是,在不需要重新映射数据点的情况下反转r轴,因为我的数据在1到5的范围内,1表示非常食物,5表示非常糟糕。(因此,当反转数据点时,我会失去刻度的含义) (已经描述过) 我的第一种方法是使用matplotlibs 所以来源是 # Draw ylabels ax.set_rlabel_position(0) plt.yticks([10,20,30], ["10","20","30"], color="grey", size=7) plt.ylim(0,40

我试图用下面的代码绘制一张雷达图

我的目标是,在不需要重新映射数据点的情况下反转r轴,因为我的数据在1到5的范围内,1表示非常食物,5表示非常糟糕。(因此,当反转数据点时,我会失去刻度的含义)

(已经描述过)

我的第一种方法是使用matplotlibs

所以来源是

# Draw ylabels
ax.set_rlabel_position(0)
plt.yticks([10,20,30], ["10","20","30"], color="grey", size=7)
plt.ylim(0,40)
我的方法是

# Draw ylabels
ax.set_rlabel_position(0)
plt.yticks([30,20,10], ["30","20","10"], color="grey", size=7)  # Reversed labels
plt.ylim(40,0) # Reversed axis, as described above
但问题是,较低的代码永远不会完成。所以我甚至不知道如何调试它,因为我没有得到任何错误


我似乎也不能只反转Axis标签(使用这种方法,只反转数据和标签是可行的)

如果你想使用反转标签,你必须使用
plt.yticks([10,20,30],“30”,“20”,“10”],…)
由于第一个参数对应于轴的值,并且您尚未将其反转,因此它们应保持该顺序

我检查了
plt.ylim
反转,它确实结束了,但抛出了一个相当隐晦的错误
posx和posy应该是有限值
。考虑到posx和posy不是此函数的参数,必须有一个底层函数不喜欢这样。另外,在对非极坐标图进行测试后,我猜问题来自极坐标


环顾四周,我发现了和,这导致了2018年12月的。如果您有最新的matplotlib版本,它应该可以使用。

请查看以下内容。。。希望这里有你可以使用的东西。我实现这一点的方法是绘制
rmax-r
,而不是
r
。我还颠倒了刻度的顺序,但保持刻度标签不变

# Set up the data for plotting.
N=20
angles = 2.0*pi*np.linspace(0,1,N)
rmin = 0
rmax = 10
radii = rmax*np.random.random(N)

# Plot the non-reversed plot
plt.figure()
ax = plt.subplot(111,polar = True)
ax.plot(angles,radii)
ax.fill(angles, radii, 'b', alpha=0.1)
n_labels = 5
ticks1 = np.linspace(rmin,rmax,n_labels)
labels = [str(t) for t in ticks1]
plt.yticks(ticks1, labels)
plt.ylim(rmin,rmax)


提到的PR标记为3.1,3.1版将在几天后(几周)发布。
# Reverse the plot
r2 = radii.max()-radii
plt.figure()
ax = plt.subplot(111,polar = True)
ax.plot(angles, r2)
ticks2 = np.linspace(rmax,rmin,n_labels)
labels = [str(t) for t in ticks1]
plt.yticks(ticks2, labels)
ax.fill_between(angles,r2,rmax,color='b',alpha = 0.1)
plt.ylim(rmin,rmax)