Как настроить местоположение пользовательской метки xticklabel на Seaborn Barplot? - PullRequest
0 голосов
/ 25 мая 2020

В настоящее время я использую seaborn для создания базового c штрихового графика. Изначально у меня есть метки xtick от 1 до 10:

enter image description here

Однако я хотел бы удалить метки xtick от 1 до 10 и просто заменить их с «Наименее продуктивным, средним и наиболее продуктивным». В настоящее время я пробовал следующее:

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

Однако я получаю следующее:

enter image description here

На самом деле, мне просто нужно " Наименее продуктивным »слева,« Средним »посередине и« Самым производительным »справа.

У меня не всегда будут точно значения от 1 до 10, так как иногда в моем наборе данных может отсутствовать какое-либо из этих значений, поэтому я не могу ссылаться на 1 на наименее продуктивную, 10 на наиболее продуктивную и т. Д. c.

Заранее спасибо.

Изменить, текущий код как есть:

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)

1 Ответ

0 голосов
/ 25 мая 2020

Вы можете составить список пустых ярлыков, а затем заменить первое, последнее и среднее значение своими ярлыками. Вот, например, как это будет работать с набором данных советов seaborn.

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

...