我尝试使用标准方法在同一画布上绘制两个直方图:
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()
,结果是: 如果您注意到,直方图' bar'没有朝向末端(最右侧)对齐。怎么解决?有没有人见过这个?
水平轴是有理数[0,1],默认情况下,它被分箱到10个0.1的bin中。我不明白为什么两个小组的栏在开头没有对齐。
答案 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
即使箱宽不同,也可以这样做。