1

我正在尝试为绘图生成可变长度的阴影。现在,我只有从实际线得到固定长度的阴影。

a    = np.linspace(1, 10)
loga = np.log(a)

_, ax = plt.subplots()

ax.plot(a, loga, lw=3, color='#27AE60', alpha=1)
ax.fill_between(a, loga+0.2, loga-0.2, color='#539caf', alpha=0.1)

ax.set_title("log plot")
plt.legend(["natural log"], loc="upper left")

对应的情节是:

对数图

但是,我想得到一个如下图所示的情节。src:硕士论文

可变长度着色

如何修改我的代码以生成这种可变长度的阴影?我的意思是当我们从左到右时,线后面的阴影区域应该增加(即随着x轴上的值增加)。如果有任何帮助,我将不胜感激。圣诞快乐!

4

1 回答 1

1

答案非常明显。的参数fill_between是 x 值、填充区域上边缘的 y 值和下边缘的 y 值。修改这两个将改变着色区域:

import matplotlib.pyplot as plt
import numpy as np

a    = np.linspace(1, 10)
loga = np.log(a)

_, ax = plt.subplots()

ax.plot(a, loga, lw=3, color='#27AE60', alpha=1)
ax.fill_between(a, loga+np.linspace(0,1,a.size), loga-np.linspace(0,1,a.size), color='#539caf', alpha=0.1)

ax.set_title("log plot")
plt.legend(["natural log"], loc="upper left")

plt.show()
plt.savefig('so.png')

在此处输入图像描述

现在,至于如何定义这些界限……当然,这取决于您希望这些行具有的含义(即您的数据)。这确实是特定于问题的,您没有提到任何问题。(而且可能与编程无关,所以不在现场)。

于 2017-12-25T13:51:56.600 回答