首页 > 解决方案 > 如何在 matplotlib 中的曲线之间进行插值?

问题描述

我试图在中间有空白的曲线之间进行插值,如下图所示。为此,我正在使用 matploblib 库和 Python 3。我试图在网上找到一些资源,但是对于像我这样的初学者来说找不到任何很好的东西。正如我提到的,我正在使用 matplotlib,但我愿意使用其他可能对此更好的库(seaborn?)。谢谢!

更新:正如评论中所建议的,我尝试使用该plt.fill_between()方法,插值 = True 和一个新的颜色图(viridis)。但是,结果如下。有些东西不工作。有什么建议么?我在下面附上了我的情节的代码。

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

标签: pythonpython-3.xmatplotlibinterpolationscientific-computing

解决方案


推荐阅读