Matplotlib fill_between transparency

Matplotlib fill_between transparency

参考:fill_between transparency

在Matplotlib中,fill_between()函数允许我们填充两个曲线之间的区域。我们可以通过设置alpha参数来调整填充区域的透明度,使得填充区域不会完全遮挡曲线。

示例代码

示例1:简单示例

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.fill_between(x, y1, y2, color='gray', alpha=0.5)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们绘制了sin曲线和cos曲线,并使用fill_between()函数填充两者之间的区域。设置alpha=0.5使得填充区域透明度为50%。

示例2:不同颜色的填充区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.fill_between(x, y1, y2, where=(y1 > y2), color='green', alpha=0.3)
plt.fill_between(x, y1, y2, where=(y1 <= y2), color='orange', alpha=0.3)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们根据不同条件填充不同颜色的区域。where=(y1 > y2)表示当y1 > y2时填充绿色区域,where=(y1 <= y2)表示当y1 <= y2时填充橙色区域。

示例3:使用线型填充

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.fill_between(x, y1, y2, interpolate=True, color='purple', alpha=0.2)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们通过设置interpolate=True参数实现了线型填充效果。填充区域的颜色为紫色,透明度为20%。

示例4:填充区域形状自定义

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 100)
y3 = np.exp(x/10)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y3, color='green')
plt.fill_between(x, y1, y3, where=(y1 < y3), interpolate=True, step='mid', color='yellow', alpha=0.4)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们绘制了指数曲线和sin曲线,并根据条件填充了不规则形状的区域。设置step='mid'参数可以调整填充区域的形状。

示例5:分段填充

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 100)
y4 = np.where(x<5, x, 10-x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y4, color='orange')
plt.fill_between(x, y1, y4, where=(y1 < y4), interpolate=True, color='gray', alpha=0.5)
plt.fill_between(x, y1, y4, where=(y1 >= y4), interpolate=True, color='pink', alpha=0.5)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们根据条件分段填充不同颜色的区域。where=(y1 < y4)表示y1 < y4时填充灰色区域,where=(y1 >= y4)表示y1 >= y4时填充粉色区域。

示例6:堆叠填充

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.fill_between(x, y1, y2, color='yellow', alpha=0.5)
plt.fill_between(x, y1, color='green', alpha=0.3)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们将两个填充区域堆叠在一起。首先填充了sin曲线和cos曲线之间的区域为黄色,然后填充了sin曲线以下的区域为绿色。

示例7:填充不规则形状

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 100)
y5 = np.where(x<5, np.exp(x), np.sin(x))

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y5, color='purple')
plt.fill_between(x, y1, y5, color='orange', alpha=0.4)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了不规则形状的区域。根据条件,当x<5时填充指数曲线和sin曲线之间的区域。

示例8:多条曲线的填充

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 100)
y6 = np.tan(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.plot(x, y6, color='green')
plt.fill_between(x, y1, y2, color='yellow', alpha=0.3)
plt.fill_between(x, y1, y6, color='pink', alpha=0.5)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们绘制了sin曲线、cos曲线和tan曲线,并填充了两个不同的区域。其中,填充了sin曲线和cos曲线之间的区域为黄色,填充了sin曲线和tan曲线之间的区域为粉色。

示例9:填充包围线

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 100)
y7 = np.cosh(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y7, color='black')
plt.fill_between(x, y1, y7, color='gray', alpha=0.2, where=(y1 < y7))
plt.fill_between(x, y1, y7, color='purple', alpha=0.2, where=(y1 >= y7))
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了包围指定曲线的区域。设置where=(y1 < y7)where=(y1 >= y7)分别表示y1 < y7y1 >= y7时填充不同的区域。

示例10:填充阴影效果

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.fill_between(x, y1, y2, color='yellow', alpha=0.2, edgecolor='orange')
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们使用edgecolor参数为填充区域添加边框颜色。填充区域的颜色为黄色,透明度为20%,边框颜色为橙色。

示例11:填充曲线以下区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, 0, y1, color='green', alpha=0.3)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了sin曲线以下的区域。设置fill_between()的y轴起点为0,填充区域的颜色为绿色,透明度为30%。

示例12:填充数据点周围

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

x = np.linspace(0, 10, 10)
y8 = np.cos(x)

plt.figure()
plt.plot(x, y8, 'o', color='purple')
plt.fill_between(x, y8, alpha=0.7)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们绘制了散点图,并通过fill_between()函数填充了数据点周围的区域。设置透明度为70%。

示例13:填充曲线两侧区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, y1, alpha=0.5)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们使用fill_between()函数填充了sin曲线两侧的区域。填充的区域为整个y轴范围,透明度为50%。

示例14:填充大范围区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, y1.min(), y1.max(), color='pink', alpha=0.4)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了整个y轴范围的区域。设置颜色为粉色,透明度为40%。

示例15:填充双曲线之间区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y7, color='black')
plt.fill_between(x, y1, y7, where=(y1 < y7), color='yellow', alpha=0.3)
plt.fill_between(x, y1, y7, where=(y1 >= y7), color='orange', alpha=0.3)
plt.show()

在这个示例中,我们填充了两个曲线之间的区域,其中填充条件为y1 < y7y1 >= y7,分别填充了黄色和橙色的区域。

示例16:填充指定范围区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, 3, 7, color='green', alpha=0.5)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了指定x范围内的区域。填充范围为x=3到x=7之间的区域,颜色为绿色,透明度为50%。

示例17:填充峰值上下区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, y1.max(), y1.min(), color='gray', alpha=0.3)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了sin曲线的峰值上下的区域。由于填充范围选取了最大值和最小值,因此形成了一个垂直的填充区域。

示例18:填充曲线和x轴之间区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, 0, y1, color='purple', alpha=0.4)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了sin曲线和x轴之间的区域。填充的区域从y=0到sin曲线的数值处,颜色为紫色,透明度为40%。

示例19:填充部分区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, 2.5, 5, where=((x>=2.5) & (x<=5)), color='yellow', alpha=0.3)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了指定范围内的部分区域。通过设置where=((x>=2.5) & (x<=5)),确定了要填充的范围为x=2.5到x=5的部分区域,颜色为黄色,透明度为30%。

示例20:填充最小值以下区域

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure()
plt.plot(x, y1, color='blue')
plt.fill_between(x, y1.min(), alpha=0.4)
plt.show()

Output:

Matplotlib fill_between transparency

在这个示例中,我们填充了sin曲线最小值以下的区域。填充的范围为最小值以下的整个y轴范围,透明度为40%。

结语

通过本文的示例代码,我们详细介绍了在Matplotlib中如何使用fill_between()函数实现填充区域的透明效果。通过调整颜色、透明度和填充条件,我们可以灵活地对图形进行美化和增加信息的展示,使得数据可视化更加直观和吸引人。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程