Я использую 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()
Вы можете сломать ось х диаграммы, как описано здесь, путем построения двух разных осей, которые визуально выглядят как один сюжет. Существенная часть, переписанная для применения к оси 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)
См. Связанный документ о том, как отполировать его, добавив диагональные строки прерывания. Базовая версия, созданная вышеприведенным кодом, выглядит следующим образом:
bins = 'auto'
. возможно это может помочь