Matplotlib: интервал между отметками оси X не центрирован по всем столбцам - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь построить 3 разных распределения на одной гистограмме. По причинам, которые я не понимаю, столбцы центрированы между отметками оси X для низких значений, но не для высоких значений. Смущает, когда я пытаюсь использовать случайные числа вместо своих данных, проблема решается.

Функция построения графика:

import matplotlib.pyplot as plt

plt.rc('font',family='Phetsarath OT')
plt.rcParams["legend.fontsize"] = 12
%matplotlib inline

def plotHistogram_test(x, y, z):

    plt.figure(figsize=[10, 6])
    plt.hist([x, y, z], color=['blue','black', 'red'], bins=10, align='mid', rwidth=0.5)

    plt.gca().spines['right'].set_color('none')
    plt.gca().spines['top'].set_color('none')

    plt.title('', fontsize=14)
    plt.xlabel('', fontsize=14, labelpad=5)
    plt.ylabel('', fontsize=14, labelpad=5)


    plt.xticks(np.arange(0, 1.1, step=0.1), fontsize=12)    
    plt.yticks(fontsize=12)
    plt.tick_params(axis='both', which='both', left=True, bottom=True,labelbottom=True) 

    plt.show()

Вывод со случайными числами:

plotHistogram_test(np.random.uniform(size=100), np.random.uniform(size=100), np.random.uniform(size=100))

enter image description here

Вывод с реальнымданные:

enter image description here

Обратите внимание, как столбцы начинают центрироваться, а затем медленно смещаются ...

1 Ответ

0 голосов
/ 12 октября 2019

Настройка bins=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] решает проблему.

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