Python matplotlib中多个变量的累积绘图?
使用matplotlib/numpy是否有一种简单的方法来绘制多个变量的累积图 我在想这样一张图 例如,我有数据Python matplotlib中多个变量的累积绘图?,python,matplotlib,Python,Matplotlib,使用matplotlib/numpy是否有一种简单的方法来绘制多个变量的累积图 我在想这样一张图 例如,我有数据a=[0,3,6],b=[0,3,4],这应该成为一个计数图 [(0,a=1,b=1),(3,a=2,b=2),(4,a=2,b=3),(6,a=3,b=3)]。因此,没有装箱,而是所有x值都会得到一个特定变量的计数低于该值的点。a和b值应相互叠加 我可以想象如何用对分实现复杂的交错预处理,但我看不到一个简单的解决方案 有什么建议吗 编辑:累积计数的另一种解释: 我有多个具有x值的数据
a=[0,3,6]
,b=[0,3,4]
,这应该成为一个计数图
[(0,a=1,b=1),(3,a=2,b=2),(4,a=2,b=3),(6,a=3,b=3)]
。因此,没有装箱,而是所有x值都会得到一个特定变量的计数低于该值的点。a和b值应相互叠加
我可以想象如何用对分实现复杂的交错预处理,但我看不到一个简单的解决方案
有什么建议吗
编辑:累积计数的另一种解释:
我有多个具有x值的数据行。例如,a=[0,3,6]
,b=[0,3,4]
,c=[1,7]
我需要每个数据行的图表。绘图x坐标的可能值是所有数据行值的并集。这里[0,1,3,4,6,7]
对于这些总x值中的每一个,特定行的y值将是该数据中有多少值低于x坐标。因此对于x坐标x=[0,1,3,4,6,7]
我得到ya=[1,1,2,2,3,3]
,yb=[1,1,2,3,3]
,yc=[0,1,1,1,1,2]
。
当然,我会使用堆叠绘图:)您在链接中提到的绘图类型可以通过
stackplot
实现。请参见以下示例:
我对示例数据的含义并不完全清楚。你能举一个更详细的例子说明你所拥有的数据和你想要得到什么吗
编辑:一个非常简单的方法:
>>> a=[0,3,6]
>>> b=[0,3,4]
>>> c=[1, 7]
>>>
>>> x = [0,1,3,4,6,7]
>>>
>>> ya = []
>>>
>>> val = 0
>>> for i in x:
... if i in a:
... val += 1
... ya.append(val)
... else:
... ya.append(val)
...
>>> ya
[1, 1, 2, 2, 3, 3]
但可能会有更有效的方法。您使用numpy或pandas进行分析吗?或者使用普通列表?看起来不错:)我已经更新了多个数据数组累积计数的解释。谢谢你的建议!我使用numpy,但无论如何我很快就会学会熊猫。实际上,我需要一个小的调整,因为有时有超过
+=1
的值。我还需要同时对所有变量进行处理。但它是有效的:)我想可能有一个优雅的numpy解决方案更有效:)这似乎是一个标准任务。也许你可以看看bincount
()