带垂直y轴标签的柱状图

95 投票
4 回答
187610 浏览
提问于 2025-04-15 13:20

我正在使用matplotlib来生成一个(竖着的)柱状图。问题是我的标签比较长。有没有办法把它们竖着显示呢?可以是在柱子里面,或者在柱子上面或下面?

4 个回答

26

请查看这个链接:https://python-graph-gallery.com/7-custom-barplot-layout/

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)

结果会像这样:这里输入图片描述

希望这对你有帮助。

67

在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)
115

你是想要这样的效果吗:

>>> 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' 这两个选项很有用,它们可以帮助你定义文字相对于刻度或其他元素的对齐方式。

撰写回答