我希望你很好。
我正在使用Matplotlib绘制直方图。我希望直方图的颜色是"天蓝色"。但数据重叠,并产生一个近乎黑色的直方图。
感谢您的帮助
function setHyphen(&$array){
$array= array_combine(array_map(function($str){ return str_replace("_","-",$str); }, array_keys($array)),array_values($array));
}
setHyphen($array);
print_r($array);
答案 0 :(得分:10)
直方图看起来是黑色的原因是条形图'周围的线条(黑色)占据了大部分空间。
选项是通过将线宽设置为零来消除边缘:
storms=np.random.randint(0,2,90).reshape(10,3,3)
storms.T
array([[[1, 0, 0, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 0, 1, 1, 0, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]],
[[0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 1, 1, 1, 0, 0, 0],
[0, 1, 0, 0, 1, 0, 1, 0, 1, 1]],
[[0, 1, 0, 1, 0, 1, 1, 0, 0, 0],
[0, 1, 0, 1, 0, 1, 0, 0, 1, 1],
[0, 0, 0, 1, 1, 1, 0, 0, 1, 0]]], dtype=int8)
storms_disc(storms).T
array([[[1, 0, 0, 1, 0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 1, 0, 0, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]],
[[0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 1, 0, 1, 0, 0, 0],
[0, 1, 0, 0, 1, 0, 1, 0, 1, 0]],
[[0, 1, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 1, 0, 1, 0, 1, 0, 0, 1, 0],
[0, 0, 0, 1, 0, 1, 0, 0, 1, 0]]], dtype=int8)
和/或将edgecolor设置为与条形本身相同的颜色
plt.hist(data, color = "skyblue", lw=0)