我正在使用matplotlib生成一个(垂直)条形图。问题是我的标签相当长。有没有办法将它们垂直显示,无论是在条形图内部还是上方或下方?
你的意思是这样吗:
>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
通常,在matplotlib中以垂直方向显示任何文本,您可以添加关键字rotation='vertical'
。
如需更多选项,请查看help(matplotlib.pyplot.text)。
yticks函数绘制y轴上的刻度;我不确定您最初是否指的是这个函数还是ylabel函数,但流程始终相同,您必须添加rotation='vertical'
。
也许您还可以找到有用的选项'verticalalignment'和'horizontalalignment',它们允许您定义如何将文本与刻度或其他元素对齐。
在Jupyter Notebook中,您可能会使用类似以下的内容:
%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)
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)
结果将会像这样