Python 如何在matplotlib中的曲线之间插值?
我试图在曲线之间插入一些空白,如下图所示。为此,我正在使用matploblib库和Python 3。我试图在网上找到一些资源,但对于像我这样的初学者来说,却找不到什么好的。正如我提到的,我正在使用matplotlib,但我愿意使用其他库(seaborn?),这可能会更好。谢谢大家! 更新:正如评论中所建议的,我尝试使用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。然而,结果如下。有些东西坏了。有什么建议吗?我在下面附上了我的绘图代码
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,对不起,我用我的代码更新了。