首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib:雷达图-轴标签

Matplotlib:雷达图-轴标签
EN

Stack Overflow用户
提问于 2017-03-19 11:32:04
回答 1查看 5.1K关注 0票数 1

我正在绘制X轴上有15个标签的雷达图表。数据绘制正确,但我无法正确定义轴标签。我得到的情节如下:

正如您所看到的,生成的轴滴答数少于生成的条数。如何生成相同数量的滴答(和相应的滴答标签),以清楚地区分每个条形?我想要的是类似于下面所示的图像:

我目前使用的代码如下:

代码语言:javascript
复制
fig = figure(figsize=(8,8))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)
 sample = np.random.uniform(low=0.5, high=13.3, size=(15,))
 N = len(sample) 
items=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15'] 
theta = np.arange(0, 2*np.pi, 2*np.pi/N) 
bars = ax.bar(theta, sample, width=0.4) 
ax.set_xticklabels(items)
 ax.yaxis.grid(True)
 show()

我遗漏了什么?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-19 14:38:12

使用ax.set_xticklabels设置标签的文本。

你真正想要的是设置标签的位置。在本例中,位置只是theta数组的项。

代码语言:javascript
复制
ax.set_xticks(theta)

一旦这些刻度被设定,人们当然可以改变标签,在这里,标签只是从1开始的第一个N数,

代码语言:javascript
复制
ax.set_xticklabels(range(1, len(theta)+1))

一个完整的例子:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111,polar=True)

sample = np.random.uniform(low=0.5, high=13.3, size=(15,))
N = len(sample) 

theta = np.arange(0, 2*np.pi, 2*np.pi/N) 
bars = ax.bar(theta, sample, width=0.4)

ax.set_xticks(theta)
ax.set_xticklabels(range(1, len(theta)+1))
ax.yaxis.grid(True)
plt.show()

请注意,在2.x之前的matplotlib版本中,需要对条形图进行居中以获得上述结果

代码语言:javascript
复制
bars = ax.bar(theta, sample, width=0.4, align="center")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42886076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档