Python Matplotlib直方图颜色

时间:2017-02-11 05:05:14

标签: python matplotlib colors histogram

我希望你很好。

我正在使用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);

下面是直方图的外观。正如您所看到的,虽然我已将颜色指定为" Skyblue,但右侧的直方图几乎为黑色enter image description here

1 个答案:

答案 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)