数据可视化是数据分析的重要环节,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()

画出来的正弦函数图为:

sin

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()

sin_fill_below 关键参数说明:

  • 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()

sin_fill_above

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)

其图形为:

sin_fill_above

实际应用场景

fill_between函数特别适用于:

  • 突出显示置信区间
  • 可视化数据范围
  • 比较时间序列数据
  • 创建堆叠面积图

总结

掌握Matplotlib的fill_between()函数能大幅提升Python数据可视化效果。无论是科学绘图、商业仪表盘还是探索性数据分析,这些技巧都能使您的图表更具信息量和视觉吸引力。