3

我想在 python 中使用 matplotlib 绘制一条不同粗细的线。

为了更清楚,我有以下变量

import matplotlib.pyplot as P 
import numpy as N

x_value = N.arange(0,10,1)
y_value = N.random.rand(10)
bandwidth = N.random.rand(10)*10
P.plot(x_value,y_value,bandwidth)

我想绘制一条带有 x_value 和 y_value 的线,以及随 x_value 位置变化并由带宽向量给出的厚度。

我看到的一个可能的解决方案是绘制上下线(即我采用 y_value[index] +- bandwidth[index]/2 并绘制这两条线。

然后我可以尝试填充两行之间的空间(如何?)

如果你有什么建议?

谢谢,

塞缪尔。

4

1 回答 1

5

您可以使用fill_between.

例如,bandwidth上面一半和下面一半(并且还使用 绘制原始线plot):

在此处输入图像描述

import matplotlib.pyplot as P 
import numpy as N

x_value = N.arange(0,10,1)
y_value = N.random.rand(10)
bandwidth = N.random.rand(10)*10
print bandwidth
P.fill_between(x_value, y_value+bandwidth/2, y_value-bandwidth/2, alpha=.5)
P.plot(x_value,y_value)
P.show()
于 2014-07-09T17:31:56.217 回答