Python绘制多维列表?

时间:2018-08-23 00:03:50

标签: python matplotlib

我有一个列表,其中所有元素都是列表本身,通常只有一个元素,但是有些元素有两个元素,或者没有。

例如

Database.SetInitializer<MyDatabaseContext>(null);

(它们每次都是在可变线和3D可变表面之间的x坐标解决方案。我想使用numpy数组来提高效率,但不知道如何在这种可变尺寸的情况下使用它)

和另一个对应的列表

function MyComponent({ mutate, setState }) { return ( <button onClick={() => mutate({ variables: { foo: 42 }, }).then(data => { // Process your data as needed here: setState({ data }); }).catch(err => console.error('Our Error: ', err); }> Mutate </button> ); } export default graphql(gql`mutation { ... }`)(MyComponent);

(实际数据长度为〜100000)

我想绘制list与时间的值。 问题显然是两个列表之间的尺寸不同。因此,从概念上讲,我想每次只绘制一个元素,但是Python甚至拒绝了,因为有些元素是[]。

因此,基本上,我只停留在一个元素的情况下,如果有人建议一种处理多个元素的情况的方法(例如上面的[4,-1]),将不胜感激。 (我发现了使用sympy.solvers.solve和sympy.nsolve的解决方案,所以我猜这些解决方案是按随机顺序排序的。因此,我认为我应该找到哪个解决方案(元素)更接近于先前的解决方案-就像我们可以猜到4是原始解决方案更改,-1是其他解决方案-并加以区分。)

1 个答案:

答案 0 :(得分:0)

您可以使用堆积的条形图来表示数据:

import matplotlib.pyplot as plt
l = [[1],[2],[4,-1],[5],[]]
a, b = zip(*[i+[0, 0][:abs(len(i)-2)] for i in l]) 
time=[1,2,3,4,5]
plt.bar(list(range(len(l))), a, 0.5, color='#d62728', yerr=time, label='variable line')
plt.bar(list(range(len(l))), b, 0.5, bottom=a, yerr=time, label='3D surface')
plt.ylabel('coordinates')
plt.xlabel('time')
plt.legend(loc='upper left')
plt.show()

输出:

enter image description here