Как построить смешанную ось X для гистограммы в Python? - PullRequest
1 голос
/ 15 октября 2019

Я хотел бы нанести на график время окончания процесса, который иногда терпит неудачу. Все, кроме одного из моих блоков для гистограммы, будут числовыми. Как я могу добавить «сбой», или время на моей гистограмме не совпадает?

Моя работа пока что показывает оба, но я теряю числовые метки x.

import numpy as np
import pandas as pd

np.random.seed(0)

time = np.random.uniform(size = 1000)
fail = time > 0.95

d = pd.DataFrame(time)
d.loc[fail,0] = np.nan
d['fail'] = np.isnan(d.loc[:,0])

ax = d[0].hist()
ax.bar(x=1.5,height=d['fail'].sum(),color='r',tick_label='Fail')

1 Ответ

1 голос
/ 15 октября 2019

При вызове ax.bar() числовые отметки заменяются одним отметкой на новой панели. Я не знаю, есть ли рекомендуемый способ справиться с этим, но я смог вручную установить галочки с помощью set_xticks(). Я оставил один основной тик, как у вас сейчас, а затем добавил незначительные тики для числовых корзин.

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

np.random.seed(0)

time = np.random.uniform(size = 1000)
fail = time > 0.95

d = pd.DataFrame(time)
d.loc[fail,0] = np.nan
d['fail'] = np.isnan(d.loc[:,0])

ax = d[0].hist()
ax.bar(left=1.5,height=d['fail'].sum(),color='r',tick_label='Fail')

minor_ticks = [x/5 for x in range(6)]
ax.set_xticks(minor_ticks, minor=True)
ax.set_xticklabels(minor_ticks, minor=True)

plt.show()

Мне также пришлось изменить ax.bar(x=...) на ax.bar(left=...). Я не знаю, была ли это ошибка или просто разница в версии.

Вот как выглядит мой сюжет:

example plot

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