Почему это не показывает две перекрывающиеся гистограммы? - PullRequest
0 голосов
/ 06 сентября 2018

Итак, я получил этот код, который должен отображать предполагаемые и теоретические пределы некоторых изменений:

import matplotlib.pyplot as plt

p = 0.22
new_p = 0.24

def draw_hist():
    x = [0, 1]
    theory_y = [new_p, 1 - new_p]
    estimate_y = [p, 1 - p]
    plt.hist(x, estimate_y, alpha=0.5, label='estimated marginal')
    plt.hist(x, theory_y, alpha=0.5, label='theoretical marginal')
    plt.legend(loc='upper right')
    plt.show()

draw_hist()

Но я получаю пустой график как вывод, это неправильное использование гистограмм или что-то в этом роде? Контент на самом деле не то, что важно, а скорее поведение matplotlib.

1 Ответ

0 голосов
/ 06 сентября 2018

Вам нужно plt.bar - график, а не гистограмма. У вас просто есть некоторые значения х и соответствующие значения у. Природа данных гистограммы различна. См. здесь , например. Это типичная путаница между графиками и гистограммой, которую я видел пару раз на SO.

x = np.array([0, 1])
theory_y = [new_p, 1 - new_p]
estimate_y = [p, 1 - p]
plt.bar(x+0.1, estimate_y, alpha=0.5, width=0.2, color='red', label='estimated marginal')
plt.bar(x-0.1, theory_y, alpha=0.5, width=0.2, color='green', label='theoretical marginal')
plt.legend(loc='best')
plt.xticks(x)

выход

enter image description here

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