[英]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()
它出什么问题了?
如果您将刻度和刻度标签添加到您的轴(而不是使用pyplot.xticks
,如在您的第一个代码段中),您需要分别分配刻度位置和标签。 尝试以下,而不是ax3.set_xticks(angles, attributes)
做:
ax3.set_xticks(angles)
ax3.set_xticklabels(attributes)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.