У меня есть массив со значениями, и я хочу создать его гистограмму. Меня в основном интересуют низкие номера, и я хочу собрать каждое число выше 300 в одном ящике. Этот бункер должен иметь ту же ширину, что и все другие (одинаково широкие) бункеры. Как я могу это сделать?
Примечание: этот вопрос связан с этим вопросом: Определение ширины буфера/оси x в гистограмме Matplotlib
Это то, что я пробовал до сих пор:
import matplotlib.pyplot as plt
import numpy as np
def plot_histogram_01():
np.random.seed(1)
values_A = np.random.choice(np.arange(600), size=200, replace=True).tolist()
values_B = np.random.choice(np.arange(600), size=200, replace=True).tolist()
bins = [0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 600]
fig, ax = plt.subplots(figsize=(9, 5))
_, bins, patches = plt.hist([values_A, values_B], normed=1, # normed is deprecated and will be replaced by density
bins=bins,
color=['#3782CC', '#AFD5FA'],
label=['A', 'B'])
xlabels = np.array(bins[1:], dtype='|S4')
xlabels[-1] = '300+'
N_labels = len(xlabels)
plt.xlim([0, 600])
plt.xticks(25 * np.arange(N_labels) + 12.5)
ax.set_xticklabels(xlabels)
plt.yticks([])
plt.title('')
plt.setp(patches, linewidth=0)
plt.legend()
fig.tight_layout()
plt.savefig('my_plot_01.png')
plt.close()
Это результат, который выглядит не очень хорошо:
Затем я изменил строку с помощью xlim:
plt.xlim([0, 325])
Со следующим результатом:
Он выглядит более или менее, как я хочу, но последний бит не отображается сейчас. Какой трюк мне не хватает, чтобы визуализировать этот последний бит с шириной 25?