Python中使用Matplotlib的fill_between进行区域填充
数据可视化是数据分析的重要环节,Matplotlib库中的fill_between()
函数可以显著提升图表表现力。本教程将演示三种实用的区域填充方法。
数据准备
首先我们创建一个正弦波作为基础数据:
import numpy as np
import matplotlib.pyplot as plt
n = 1024
x = np.linspace(-np.pi, np.pi, n, endpoint=True)
y = np.sin(2 * x)
plt.plot(x, y, color='blue', alpha=1.00)
plt.savefig("sine_wave.png", dpi=200)
plt.close()
画出来的正弦函数图为:
matplotlib向下填充
使用fill_between进行颜色填充,由于正弦函数范围为0-1,0在其最下边.其中参数y2向下就为0,表示y=0的线
plt.plot(x, y, color='blue', alpha=1.00)
plt.fill_between(x, y, 0, color='blue', alpha=.1)
plt.savefig("sin_fill_below.png",dpi=200)
plt.close()
关键参数说明:
- x:X轴数值
- y:主曲线数值
- 0:填充至y=0处
- alpha:控制透明度(0-1)
matplotlib向上填充
使用fill_between进行颜色填充,其中参数y2向上为1,表示y=1的线
plt.plot(x, y, color='blue', alpha=1.00)
plt.fill_between(x, y, 1, color='green', alpha=.1)
plt.savefig("sin_fill_above.png",dpi=200)
plt.close()
matplotlib两条线之间填充
一个道理,区别在于将fill_between改为该线条对应的值即可,这里以cos作为第二条线,并在sin与cos之间进行红色的填充,代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据生成
n = 1024
x = np.linspace(-np.pi, np.pi, n, endpoint=True)
y = np.sin(2 * x)
y2 = np.cos(2*x)
# 绘图 春江暮客
plt.plot(x, y, color='blue', alpha=1.00)
plt.plot(x, y2, color='green', alpha=1.00)
plt.fill_between(x, y, y2, color='red', alpha=0.5)
plt.savefig("sin_cos_fill.png",dpi=200)
其图形为:
实际应用场景
fill_between函数特别适用于:
- 突出显示置信区间
- 可视化数据范围
- 比较时间序列数据
- 创建堆叠面积图
总结
掌握Matplotlib的fill_between()函数能大幅提升Python数据可视化效果。无论是科学绘图、商业仪表盘还是探索性数据分析,这些技巧都能使您的图表更具信息量和视觉吸引力。
- 原文作者:春江暮客
- 原文链接:https://www.bobobk.com/748.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。