如何调整Seaborn Barplot上的自定义xticklabel位置?

2024-05-19 17:38:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用seaborn创建基本条形图。最初,我有1到10的xtick标签:

enter image description here

然而,我想删除1到10的xtick标签,并简单地用“最低效率、平均水平和最高效率”替换它们。我目前尝试了以下方法:

ax.set(xticklabels=['Least Productive','Average','Most Productive'])

但是,我得到了以下信息:

enter image description here

真的,我只需要最左边的“生产力最低”,中间的“平均”和右边的“最有生产力”。p>

我不会总是有精确的值1到10,因为在我的数据集中,偶尔我可能会丢失这些值中的任何一个,所以我不能将1引用为最低生产率,将10引用为最高生产率等等

先谢谢你

按原样编辑当前代码:

sns.set(style="whitegrid")

f, ax = plt.subplots(figsize=(10,5))

ax = sns.barplot(x='Rank', y='Yld_Vol_Dr', data=df, color=sns.xkcd_rgb["grass green"])

sns.despine()
ax.set(ylim=(min(df.Yld_Vol_Dr)*0.9,max(df.Yld_Vol_Dr)*1.1))
ax.set(xticklabels=['Least Productive','Average','Most Productive'])

plt.xlabel('HD Productivity',fontsize=25)
plt.ylabel('Yield (bu/ac)',fontsize=25)
plt.tick_params(labelsize=15)


Tags: dfplt标签ax效率leastaverageset
1条回答
网友
1楼 · 发布于 2024-05-19 17:38:57

您可以创建一个空白标签列表,然后用标签替换第一个、最后一个和中间值。下面是它如何与seaborn的tips数据集协同工作的示例

import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid")

df = sns.load_dataset('tips')

f, ax = plt.subplots(figsize=(10,5))
ax = sns.barplot(x='size', y='tip', data=df, color=sns.xkcd_rgb["grass green"])
sns.despine()

n = len(ax.get_xticklabels())
labels = ['' for i in range(n)]
labels[0] = 'Least Productive'
labels[n // 2] = 'Average'
labels[-1] = 'Most Productive'
ax.set(xticklabels=labels)
plt.tick_params(labelsize=15)

sparse labels plot example

相关问题 更多 >