Matplotlib中如何绘制兼具填充与阴影效果的直方图?
解决Matplotlib直方图填充+阴影叠加的问题
嘿,我懂你想要的效果——既有纯色填充的直方图柱体,又在上面叠加阴影线条对吧?你现在的问题出在histtype='step'这个参数上:这个类型的直方图只会绘制轮廓线,不会创建可填充的柱体区域,所以你设置的facecolor根本没地方生效,自然只有阴影线条显示啦。
正确的实现方式
不用histtype='step',直接用Matplotlib直方图默认的bar类型(甚至可以不指定,默认就是这个),同时设置填充色、阴影样式,还可以调整边框让效果更清晰。这里给你个完整的示例代码:
import matplotlib.pyplot as plt import numpy as np # 生成测试用的随机数据 values = np.random.randn(1000) bins = 20 # 绘制带填充+阴影的直方图 plt.hist( values, bins, facecolor='c', # 柱体填充色 hatch='/', # 阴影线条样式 edgecolor='black', # 柱体边框颜色 linewidth=2 # 边框宽度 ) plt.title('Filled Histogram with Hatch Overlay') plt.xlabel('Value') plt.ylabel('Frequency') plt.show()
参数说明
facecolor:设置柱体的基础填充色,就是你想要的底色hatch:指定阴影的线条样式,可选的有/、\、|、-、+、x、o等,不同符号对应不同的阴影图案edgecolor和linewidth:用来强化柱体的边框,让填充区域和阴影线条的边界更明显,和你提到的Matplotlib示例左侧效果一致
这样运行之后,你就能得到既有填充底色、又有阴影线条叠加在上面的直方图啦!
内容的提问来源于stack exchange,提问作者ylangylang
相关产品推荐
相关产品推荐

