Python:在两条垂直线之间进行渐变填充

Python:在两条垂直线之间进行渐变填充,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个看起来相当简单的问题,可能有一个更复杂的解决方案。我如何在两条线之间渐变着色?例如如果我在x=10和x=20处有两条垂直线,我将如何从x=10处的蓝色开始,并在x=20处淡入白色?我知道对于纯色,我可以在中间使用填充,但我不知道如何使其具有层次性 更新: 到目前为止,我有以下工作代码 将matplotlib作为plt导入 gradmax=20#白色开始处的值 gradmin=10#棕色开始处的值 grad_num=10#我使用了多少个垂直轮廓,增加平滑度 axstep=(gradmax

我有一个看起来相当简单的问题,可能有一个更复杂的解决方案。我如何在两条线之间渐变着色?例如如果我在
x=10
x=20
处有两条垂直线,我将如何从
x=10
处的蓝色开始,并在
x=20
处淡入白色?我知道对于纯色,我可以在中间使用填充,但我不知道如何使其具有层次性

更新:

到目前为止,我有以下工作代码

将matplotlib作为plt导入
gradmax=20#白色开始处的值
gradmin=10#棕色开始处的值
grad_num=10#我使用了多少个垂直轮廓,增加平滑度
axstep=(gradmax gradmin)/grad\u num
alpha_max=0.5
alpha_min=0
alphastep=(alpha_max-alpha_min)/grad_num
图=plt.图()
ax=图添加_子批次()
对于范围内的i(梯度数):
minplot=gradmin+i*axstep
maxplot=gradmin+(i+1)*axstep
alphaplot=alpha_max-alphastep*(i+1)
ax.axvspan(minplot、maxplot、color='brown',edgecolor='None',alpha=alphaplot)
图2(图3)

我遇到的问题是,直线重叠处有垂直条纹。有没有办法解决这个问题?我已经尝试过应用偏移量的微小增量,但这不起作用。

可能有更好的方法来实现这一点,但同时还有一些方法:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(3, 3))
ax.scatter(np.linspace(10, 20, 20000),
           np.random.rand(20000),
           c=np.linspace(10, 20, 20000),
           cmap='PuBu', marker='s', s=10)