使用Seaborn在Python中绘制带有旋转x轴标签的条形图

4
我应该如何在Seaborn中绘制一个简单的条形图,不需要任何统计学方法? 数据集仅包含名称和值。
import pandas
df = pandas.DataFrame({"name": ["Bob Johnson", "Mary Cramer", "Joe Ellis"], "vals": [1,2,3]})

我想将这个图表绘制为条形图,其中x轴标签来自name列,y轴值来自vals列,并且要将x轴标签旋转45度。该如何实现?可以使用sns.barplot函数进行绘制:

sns.barplot(x="name", y="vals", data=df)

将计算与此无关的统计数据。

1个回答

16

你的意思是像这样(set_xticklabels 方法):

import pandas

df = pandas.DataFrame({"name": ["Bob Johnson", "Mary Cramer", "Joe Ellis"], "vals": [1,2,3]})
g = sns.barplot(x='name', y='vals', data=df)
g.set_xticklabels(g.get_xticklabels(), rotation=45)

或者可能 plt.xticks 方法可以帮助:

import pandas
import matplotlib.pylab as plt

df = pandas.DataFrame({"name": ["Bob Johnson", "Mary Cramer", "Joe Ellis"], "vals": [1,2,3]})

bar_plot = sns.barplot(x='name', y='vals', data=df)
plt.xticks(rotation=45)
plt.show()

"g.set_xticklabels(rotation=45)" 的结果是:"TypeError: set_xticklabels() 至少需要 2 个参数(仅提供了 1 个)"。当你使用 "plt.xticks(rotation=45)" 时,标签对齐不正确。 - mvd
您可以通过调整字体大小、旋转角度和水平对齐等参数来避免重叠。有关不同参数的信息,请参见:http://matplotlib.org/users/text_props.html - Erba Aitbayev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接