python/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' 有

我正在使用matplotlib生成(垂直)条形图。问题是我的标签太长了。有没有办法将它们垂直显示在条形图上、上方或下方?

您的意思是这样的:

>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
?

通常,要以垂直方向显示matplotlib中的任何文本,可以添加关键字
rotation='vertical'

有关更多选项,请参阅帮助(matplotlib.pyplot.text)

yticks函数在y轴上绘制记号;我不确定您最初是指这个还是指ylabel函数,但过程都是一样的,您必须添加rotation='vertical'


也许您还可以找到有用的选项“垂直对齐”和“水平对齐”,它允许您定义如何根据记号或其他元素对齐文本。

我建议您查看。至少有两个例子似乎是相关的:

  • 了解文本布局的工作原理
  • ,一个条形图的示例,其布局比最基本的示例稍微复杂一些

在Jupyter笔记本中,您可能会使用类似的内容

%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)