Исключая определенный диапазон ячеек в гистограмме matplotlib?

1

Я использую matplotlib, чтобы посмотреть, как выигрыши распределяются на основе ставок для MLB. Проблема состоит в том, что, поскольку коэффициенты ставок равны либо> = 100, либо <= -100, в середине моей гистограммы есть большой пробел.

Есть ли способ исключить определенные бункеры (в частности, что-нибудь между -100 и 100), чтобы полосы диаграммы текли более плавно?

Ссылка на текущую гистограмму

Вот код, который у меня есть прямо сейчас:

num_bins = 20
fig, ax = plt.subplots()

n, bins, patches = ax.hist(winner_odds_df['WinnerOdds'], num_bins, 
range=range_of_winner_odds)

ax.set_xlabel('Betting Odds')
ax.set_ylabel('Win Frequency')
ax.set_title('Histogram of Favorite Win Frequency Based on Betting Odds (2018)')

fig.tight_layout()
plt.show()
  • 0
    попробуйте использовать bins = 'auto' . возможно это может помочь
Теги:
pandas
matplotlib
histogram
data-visualization

1 ответ

0

Вы можете сломать ось х диаграммы, как описано здесь, путем построения двух разных осей, которые визуально выглядят как один сюжет. Существенная часть, переписанная для применения к оси x вместо оси y, такова:

f, (axl, axr) = plt.subplots(1, 2, sharey=True)

# plot the same data on both axes
axl.hist(winner_odds_df['WinnerOdds'], num_bins)
axr.hist(winner_odds_df['WinnerOdds'], num_bins)

# zoom-in / limit the view to different portions of the data
axl.set_xlim(-500, -100)  # outliers only
axr.set_xlim(100, 500)  # most of the data

# hide the spines between axl and axr
axl.spines['right'].set_visible(False)
axr.spines['left'].set_visible(False)

axr.yaxis.tick_right()
# How much space to leave between plots
plt.subplots_adjust(wspace=0.15)

См. Связанный документ о том, как отполировать его, добавив диагональные строки прерывания. Базовая версия, созданная вышеприведенным кодом, выглядит следующим образом: Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню