Python 如何在matplotlib中的曲线之间插值?

Python 如何在matplotlib中的曲线之间插值?,python,python-3.x,matplotlib,interpolation,scientific-computing,Python,Python 3.x,Matplotlib,Interpolation,Scientific Computing,我试图在曲线之间插入一些空白,如下图所示。为此,我正在使用matploblib库和Python 3。我试图在网上找到一些资源,但对于像我这样的初学者来说,却找不到什么好的。正如我提到的,我正在使用matplotlib,但我愿意使用其他库(seaborn?),这可能会更好。谢谢大家! 更新:正如评论中所建议的,我尝试使用plt.fill_between()方法,使用新的颜色映射(viridis)插值=True。然而,结果如下。有些东西坏了。有什么建议吗?我在下面附上了我的绘图代码

我试图在曲线之间插入一些空白,如下图所示。为此,我正在使用matploblib库和Python 3。我试图在网上找到一些资源,但对于像我这样的初学者来说,却找不到什么好的。正如我提到的,我正在使用matplotlib,但我愿意使用其他库(seaborn?),这可能会更好。谢谢大家!

更新:正如评论中所建议的,我尝试使用
plt.fill_between()
方法,使用新的颜色映射(viridis)插值=True。然而,结果如下。有些东西坏了。有什么建议吗?我在下面附上了我的绘图代码

        import Model

        rates = [rate for rate in range(1, 10000, 100)]
        starts = [rates[jj] / 27 for jj in range(len(rates))]
        combo = dict(zip(rates, starts))
        curves = [model.Model(start=combo[rt], R=rt) for rt in combo.keys()]
        for curve in curves:
            curve.run_model()
        to_plot = ['SO4', 'H2S', 'd34S_s', 'd34S_H2S']
        logged = [log(xx) for xx in curves[0].f_in]
        colors = plt.cm.viridis(np.linspace(0, 1, len(rates)))

        for obj in curves:
            for element in to_plot:
                plt.subplot(2, 2, to_plot.index(element) + 1)               
                plt.plot(logged,
                getattr(obj,element),color=colors[curves.index(obj)])
                plt.fill_between(logged, getattr(obj, element), interpolate=True, cmap='viridis')
        sm = plt.cm.ScalarMappable(cmap='viridis', norm=plt.Normalize(vmin=min(rates), vmax=max(rates)))
        plt.colorbar(sm,label=var)
        plt.show()


您可以使用。有关常用颜色栏,请参见。关于避免使用“jet”颜色图,请参见。嗨@JohanC,谢谢你的提示,我现在使用的是“viridis”颜色图。我尝试使用plt.fill_between(),但没有产生预期的结果。请看我的更新帖子。好吧,没有代码和数据来复制图像,很难判断需要更改什么。您可能有兴趣阅读。@JohanC,对不起,我用我的代码更新了。您可以使用。有关常用颜色栏,请参见。关于避免使用“jet”颜色图,请参见。嗨@JohanC,谢谢你的提示,我现在使用的是“viridis”颜色图。我尝试使用plt.fill_between(),但没有产生预期的结果。请看我的更新帖子。好吧,没有代码和数据来复制图像,很难判断需要更改什么。您可能有兴趣阅读。@JohanC,对不起,我用我的代码更新了。