выравнивание xticks в сюжете matplotlib с линиями и boxplot - PullRequest
0 голосов
/ 03 ноября 2018

Я не могу получить следующий график для правильного выравнивания по оси X. в частности, я хочу построить горизонтальную линию, представляющую последнее значение в кадре данных, на верхней части боксплота, который описывает полную выборку. вот код В настоящее время я закомментировал линию, которая будет строить график

index = pd.date_range('1/1/2018', '2/1/2018')

data = pd.DataFrame({'a':np.random.randn(32)}, index=index)

fig, ax = plt.subplots(figsize=(6,3))

ax.hlines(data.iloc[-1],xmin=pd.RangeIndex(stop=len(list(data.columns)))+.15,xmax=pd.RangeIndex(stop=len(list(data.columns)))+.85,
                  **{'linewidth':1.5})

# ax.boxplot(data.values)
ax.set_xticks(pd.RangeIndex(stop=len(list(data.columns)))+0.5)
ax.set_xticklabels(list(data.columns), rotation=0)

ax.tick_params(axis='x',length=5, bottom=True)

вот вывод из вышеперечисленного (пока все хорошо)

without the boxplot

если я раскомментирую строку сверху, код выдаст следующее, что смещено:

with the boxplot

какие-нибудь советы, как заставить их выстроиться в линию?

1 Ответ

0 голосов
/ 03 ноября 2018

По-видимому, у вас есть очень четкое мнение о том, какой боксбокс должен быть позиционирован на х = 0,5. Но вы забыли рассказать об этом на поле.

ax.boxplot(data.values, positions=[0.5])

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...