为什么它不显示两个重叠的直方图?

时间:2018-09-06 16:09:26

标签: python matplotlib

因此,我基本上已经获得了这段代码,该代码应该显示某些更改的估计和理论边际:

data info;
   infile cards n=2 firstobs=2;
   input #1 patient:$3. location :$1. @'Admission Code: ' AdmissionCode &$16. #2 @'Exit Code: ' ExitCode &$16.;
   cards;
Patient    Location    infoTxt
001        B           Admission Code: 123456 X
                       Exit Code: 98765W
002        C           Admission Code: 4567 WY
                       Exit Code: 76543Z
003        D           Admission Code: 67890 L
                       Exit Code: 4321Z
;;;;
   run;
proc print;
   run;

但是我得到一个空图作为输出,这是对直方图的错误使用吗?内容并不是真正重要的内容,而是matplotlib的行为。

1 个答案:

答案 0 :(得分:4)

您需要plt.bar(一个小图),而不是直方图。您只有一些x值和相应的y值。直方图数据的性质不同。例如,请参见here。这是条形图和直方图之间的典型混淆,我在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