首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotilb条形图:对角线刻度标签

Matplotilb条形图:对角线刻度标签
EN

Stack Overflow用户
提问于 2013-07-24 15:27:34
回答 2查看 25.3K关注 0票数 15

我正在使用matplotlib.pyplot在python中绘制条形图。图表将包含大量条形图,并且每个条形图都有自己的标签。因此,标签重叠,它们不再具有可读性。我希望标签是对角线显示,这样他们就不会过度实验,如在this图像。

这是我的代码:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
N =100
menMeans = range(N)
ind = range(N)  
ticks = ind 
fig = plt.figure()
ax = fig.add_subplot(111)
rects1 = ax.bar(ind, menMeans, align = 'center')
ax.set_xticks(ind)
ax.set_xticklabels( range(N) )
plt.show()

标签如何对角显示?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-24 15:58:21

文档中的示例使用:

代码语言:javascript
运行
复制
plt.setp(xtickNames, rotation=45, fontsize=8)

所以在你的例子中,我认为:ax.set_ticklabels(range(N), rotation=45, fontsize=8)会给你角度,但它们仍然是重叠的。所以试试吧:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
N =100
menMeans = range(N)
ind = range(N)  
ticks = ind 
fig = plt.figure()
ax = fig.add_subplot(111)
rects1 = ax.bar(ind, menMeans, align = 'center')
ax.set_xticks(range(0,N,10))
ax.set_xticklabels( range(0,N,10), rotation=45 )
plt.show()

票数 12
EN

Stack Overflow用户

发布于 2018-01-29 03:01:17

不使用set_xticksset_xticklabels (两者都是officially discouraged ),只需将rotation参数用于xticks即可

代码语言:javascript
运行
复制
plt.xticks(rotation=45, ha="right")

通过这种方式,您可以指定刻度标签的旋转,同时让matplotlib为您处理它们的频率/间距。请注意,如果标签都很短,使用ha="right"右对齐标签文本并不重要(在这种情况下,您可能想要删除它),但如果标签很长且长度可变,则很重要-它确保刻度标签的末端直接位于其标签的刻度下方,并防止标签间距不一致或甚至重叠。

一个完整的工作示例,基于问题中的代码:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
N =100
menMeans = range(N)
ind = range(N)  
ticks = ind 
fig = plt.figure()
ax = fig.add_subplot(111)
rects1 = ax.bar(ind, menMeans, align = 'center')
plt.xticks(rotation=45, ha="right")
plt.show()

输出:

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17827748

复制
相关文章

相似问题

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