Как поменять местами X-метки на боксплоте? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть график с несколькими прямоугольниками с идентификаторами вопросов по оси X (например, A1, A2, A3).Мне нравится заменять идентификаторы пользовательским текстом.

Это ничего не делает

plt.xticks([1, 2, 3, 4, 5, 6, 7, 8,9,10],['b1', 'b2', 'b3', 'b4', 'b5', 'A6', 'A7', 'A8', 'A9','A10'])

Это ничего не делает

plt.xticks(['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9','A10'],['b1', 'b2', 'b3', 'b4', 'b5', 'A6', 'A7', 'A8', 'A9','A10'])

Это не делаетсделать что-нибудь

plt.xticks([],[])

Мой код, который у меня есть

whiskerprops = dict(linestyle='-', linewidth=4.0, color='cyan')
boxprops = dict(linewidth=4.0, color='black')
capprops = dict(linewidth=4.0, color='red')
medianprops = dict(linewidth=4.0, color='black')


plt.text(2,7,"test")
plt.xticks([])
plt.tick_params(
    axis='x',
    which='both',
    bottom=False,
    labelbottom='off'  #works to hide the labels 
    )


flierprops = dict(marker='o', markersize=12, linestyle='none', markeredgecolor='green', markerfacecolor='red')
boxplot = alert_df.boxplot(column=['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9','A10'],  # these are the question IDs I like to replace

                           figsize=(15,5),
                           fontsize=15,
                           patch_artist=True, 
                           notch=True, 
                           whiskerprops=whiskerprops, 
                           boxprops=boxprops,
                           capprops = capprops,
                           medianprops=medianprops,
                           flierprops = flierprops,
                           rot=35,
                           )

Мне нравится то, что это замена:

  • A1 -> "Это вопрос1 "
  • A2 ->" Это вопрос 2 "
  • и т. Д.

1 Ответ

1 голос
/ 16 апреля 2019

ax.set_xticklabels - это то, что вы ищете

fig, ax = plt.subplots(1,1, figsize=(15,5))
df.boxplot(ax=ax)
ax.set_xticklabels([f'Q{i}' for i in range(1,11)]);
...