matplotlib(多个)直方图中的奇怪行为

时间:2017-01-14 22:01:13

标签: python matplotlib histogram

我尝试使用标准方法在同一画布上绘制两个直方图:

    plt.figure(figsize=(8,6))
    plt.hist(samp_1_I, label=['Female'], alpha=0.5)
    plt.hist(samp_0_I, label=['Male'], alpha=0.5)
    plt.tick_params(axis='both', which='major', labelsize=18)
    plt.legend(fontsize=18)
    plt.show()

,结果是:enter image description here 如果您注意到,直方图' bar'没有朝向末端(最右侧)对齐。怎么解决?有没有人见过这个?

水平轴是有理数[0,1],默认情况下,它被分箱到10个0.1的bin中。我不明白为什么两个小组的栏在开头没有对齐。

1 个答案:

答案 0 :(得分:2)

如果您想要10个binwidth为0.1的bin,则需要在android.applicationVariants.all { variant -> println("variant: "+variant.dirName) variant.mergeResources.doLast { try { println("3") ext.env = System.getenv() File valuesFile = file("${buildDir}/intermediates/res/merged/${variant.dirName}/values/values.xml") String content = valuesFile.getText('UTF-8') content = content.replaceAll(/IWANTTOREPLACEITWITHLEFTARROW/, '<') valuesFile.write(content, 'UTF-8') } catch (Exception e) { println("Exception = " + e) } } try { println("try") ext.env = System.getenv() File valuesFile = file("${buildDir}/intermediates/res/merged/${variant.dirName}/values/values.xml") String content = valuesFile.getText('UTF-8') content = content.replaceAll(/IWANTTOREPLACEITWITHLEFTARROW/, '<') valuesFile.write(content, 'UTF-8') } catch (Exception e) { println("Exception = " + e) } } 的调用中提供这些bin。

plt.hist

<小时/> 回答评论中的问题: 使用import matplotlib.pyplot as plt import numpy as np samp_1_I = np.random.rand(14) samp_0_I = np.random.rand(17) bins= np.arange(11)/10. plt.figure(figsize=(8,6)) plt.hist(samp_1_I, bins=bins, label=['Female'], alpha=0.5) plt.hist(samp_0_I, bins=bins, label=['Male'], alpha=0.5) plt.tick_params(axis='both', which='major', labelsize=18) plt.legend(fontsize=18) plt.show() ,您将获得归一化频率,即每个bin宽度的总和乘以normed=True

1

即使箱宽不同,也可以这样做。