繁体   English   中英

Python Matplotlib 所需的 x_ticks 不会出现在雷达图上

[英]Python Matplotlib required x_ticks don't appear on a radar chart

好的,我正在绘制具有以下风向数据的雷达图:

direction = ['N', 'NW', 'E', 'N', 'N', 'NW', 'NW', 'N', 'N', 'W', 'N', 'NW', 'NW', 'NW', 'N', 'SE', 'NE', 'E', 'E', 'NW', 'NE', 'S', 'E', 'W', 'W', 'NW', 'W', 'W', 'W', 'W', 'W', 'W', 'NW', 'W', 'W', 'W', 'W', 'W', 'W', 'NW', 'W', 'N', 'SE', 'E', 'NE', 'E', 'NE']

我收集图表上刻度的属性列表:

attributes = ['E', 'NE', 'N', 'NW', 'W', 'SW', 'S', 'SE']

然后我在轴的属性和角度中列出与每个方向相对应的值以绘制数据:

values = [6, 4, 8, 10, 16, 0, 1, 2, 6]
angles = [n / float(len(attributes)) * 2 * math.pi for n in range(len(attributes)[![enter image description here][1]][1])]
angles += angles [:1]

然后做一个情节:

ax3 = plt.subplot(111, polar=True)
plt.xticks(angles[:-1], attributes)
ax3.plot(angles,values)
ax3.fill(angles, values, 'teal', alpha=0.1)
ax3.set_title("Direction")
plt.show()

它工作得很好(见pic_1 )。 但是当我在我的项目中使用相同的东西时,刻度不会出现在图表上(参见 pic_2 )! 这是代码(我在图中有 4 个子批次,雷达图是 ax3 - 右下角):

fig = plt.figure(figsize=(12, 8))
ax1 = plt.subplot2grid(gridsize, (0, 0))
ax2 = plt.subplot2grid(gridsize, (1, 0))
ax3 = plt.subplot2grid(gridsize, (1, 1), polar=True)
ax4 = plt.subplot2grid(gridsize, (0, 1))
[...ax1...]
[...ax2...]
[...ax4...]
ax3.set_xticks(angles[:-1], attributes)
ax3.plot(angles, values)
ax3.fill(angles, values, 'teal', alpha=0.1)
ax3.set_title('Направление ветра')
plt.show()

它出什么问题了?

pic_1 **带刻度**

pic_2 **没有滴答声**

如果您将刻度和刻度标签添加到您的轴(而不是使用pyplot.xticks ,如在您的第一个代码段中),您需要分别分配刻度位置和标签。 尝试以下,而不是ax3.set_xticks(angles, attributes)做:

ax3.set_xticks(angles)
ax3.set_xticklabels(attributes)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM