我目前正在使用seaborn创建一个基本的条形图。最初,我有从1到10的xtick标签:
但是,我想删除从1到10的xtick标签,简单地将它们替换为“最低生产力、平均生产力和最高生产力”。我目前已经尝试了以下几种方法:
ax.set(xticklabels=['Least Productive','Average','Most Productive'])
然而,我得到了以下信息:
真的,我只需要最左边的“最低生产力”,中间的“平均”和右边的“最高生产力”。
我不会总是准确地得到从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)
发布于 2020-05-26 02:53:29
您可以创建一个空白标签列表,然后将第一个、最后一个和中间值替换为您的标签。例如,它将如何与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)
https://stackoverflow.com/questions/62006030
复制相似问题