【发布时间】:2015-01-17 00:09:52
【问题描述】:
我正在尝试从包含要绘制的多个“曲线”的一对 numpy 数组在 matplotlib 中创建一个“fill”图。 numpy 数组具有以下形式:
xarray([[ 0], #curve 1
[ 100], #curve 1
[ 200], #curve 1
[ 0], #curve 2
[ 100], #curve 2
[ 200]]) #curve 2
yarray([[ 11], #curve 1
[ 22], #curve 1
[ 22], #curve 1
[ 19], #curve 2
[ 12], #curve 2
[ 0]]) #curve 2
对于此示例代码,其中有两条曲线(即 x = 0-200 两次)。实际的数组有大约 300 条曲线,所有曲线都从 x = 0 开始,但如有必要,我可以对它们进行编号(使用另一个包含曲线编号的数组)。每个 xy 对中的点数也是不同的。
我想用大约 0.01 的 alpha 值(即几乎透明)来绘制它们,以便大多数曲线下方的区域显示出最多的颜色。
但是,如果我将 x 和 y 数组放入填充函数 (plt.fill(xarray, yarray, alpha=0.01)) 中,它会将所有数据视为一条曲线,因此当曲线位于自身之上时,alpha 值不会堆叠。
我不确定如何将 x 和 y 数组更改为 plt.fill 函数将接受的逗号分隔数组列表。最终结果将相当于我手动编写的东西:
plt.fill(x1, y1, x2, y2, ... yn, xn, alpha=0.01)
有什么想法吗?
如果我解释得不够清楚,请告诉我。谢谢!
【问题讨论】:
-
你的曲线数字数组是什么样的?
indices = np.array([0, 0, 0, 1, 1, 1])?
标签: python numpy matplotlib