python/matplotlib中带垂直标签的条形图
我正在使用matplotlib生成(垂直)条形图。问题是我的标签太长了。有没有办法将它们垂直显示在条形图上、上方或下方?您的意思是这样的:python/matplotlib中带垂直标签的条形图,python,charts,matplotlib,bar-chart,Python,Charts,Matplotlib,Bar Chart,我正在使用matplotlib生成(垂直)条形图。问题是我的标签太长了。有没有办法将它们垂直显示在条形图上、上方或下方?您的意思是这样的: >>> from matplotlib import * >>> plot(xrange(10)) >>> yticks(xrange(10), rotation='vertical') ? 通常,要以垂直方向显示matplotlib中的任何文本,可以添加关键字rotation='vertical' 有
>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
?
通常,要以垂直方向显示matplotlib中的任何文本,可以添加关键字rotation='vertical'
有关更多选项,请参阅帮助(matplotlib.pyplot.text)
yticks函数在y轴上绘制记号;我不确定您最初是指这个还是指ylabel函数,但过程都是一样的,您必须添加rotation='vertical'
也许您还可以找到有用的选项“垂直对齐”和“水平对齐”,它允许您定义如何根据记号或其他元素对齐文本。我建议您查看。至少有两个例子似乎是相关的:
- 了解文本布局的工作原理
- ,一个条形图的示例,其布局比最基本的示例稍微复杂一些
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())
或者您可以使用:
plt.xticks(rotation=90)
请查看此链接: 结果是这样的
希望它能有所帮助。请注意,我没有使用plot();但是bar()。但“垂直旋转”似乎是关键。但是,这仍然不会在条形图中绘制记号。您是指xy轴上的记号吗?看看网格函数。例如网格(ls='',marker='v')。grid()控制网格在xy轴上的打印;使用marker选项,您可以为记号标记定义阶梯,使用ls=''可以得到一个不可见的网格。除非有更好的答案,否则您将得到赏金,promise。2009年8月9日之前我将无法上网:(谢谢!!不过,对于这样一个答案来说,500分可能太多了,这并不难。所以,如果你,你可以把分数留到下一次:)我如何为现有的自动生成的勾号标签做到这一点?有没有办法把标签放在一个角度,比如对角线上。嗨,Nguai al,您只需将最后一行中的“旋转”参数更改为您喜欢的任何角度。例如,plt.xticks(y_pos,bar,rotation=45)将为您提供45度x的标签。我认为这是一个与plt.bar()一起工作的标签,这是OP要求的。
import matplotlib.pyplot as plt
heights = [10, 20, 15]
bars = ['A_long', 'B_long', 'C_long']
y_pos = range(len(bars))
plt.bar(y_pos, heights)
# Rotation of the bars names
plt.xticks(y_pos, bars, rotation=90)