如何绘制一条线并设置嵌套列表中每条线的颜色?

时间:2019-03-26 03:20:15

标签: python list loops matplotlib

我有一个嵌套列表和一个函数:

a = [[2,3,4],[3,4,5],[5,7]]

def triple(a):
    return (a**2)+3

我试图绘制子列表中的每个点,例如第一个连接到第二个的值,第二个连接到第三个,然后停在子列表的最后一个值。 x是子列表中的值,ytriple(y for y in sublist)

for g in a:
    for t in g:
        plt.scatter(t, triple(t))
for g in a:
    for o in range(len(g)):
        plt.plot([g[o],g[o+1]], [triple(g[o]), triple(g[o+1])], color = 'red')
plt.show()

我尝试过,但是没有得到我想要的欲望输出。

我该怎么做才能绘制a中的每个子列表并获得三种不同颜色的线条?

1 个答案:

答案 0 :(得分:0)

  1. 您指定了color='red',因此每条线都用一种颜色绘制。
  2. 您使用plt.scatter绘制圆圈。不需要这样做,您可以在marker中使用plt.plot参数。
  3. 您的代码将抛出ValueError,因为当og的最后一个元素中时,o+1将指向未定义的元素。我改写了这一行。

我更改了a,只是为了获得更清晰的视图。这是最终代码:

a = [[2, 3, 4], [5, 6, 7], [8, 9]]
for g in a:
    plt.plot(g, [(x**2)+3 for x in g], marker='.')
plt.show()