我有一个嵌套列表和一个函数:
a = [[2,3,4],[3,4,5],[5,7]]
def triple(a):
return (a**2)+3
我尝试绘制子列表中的每个点,例如第一个值连接到第二个值,第二个值连接到第三个值,并停止在子列表中的最后一个值。 x
是子列表中的值,y
是三倍(y代表子列表中的y)
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
中的每个子列表并获得三种不同颜色的线条?
最佳答案
- 您指定了
color='red'
,因此每条线都用一种颜色绘制。 - 您使用
plt.scatter
来绘制圆圈。不需要这样做,您可以在plt.plot
中使用marker
参数。 - 您的代码抛出
ValueError
,因为当o
位于g
的最后一个元素时,o+1
将指向未定义的元素。我重写了这一行。
我稍微改变了a
,只是为了获得更独特的 View 。这是最终的代码:
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()
关于python - 如何绘制一条线并设置嵌套列表中每条线的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55349370/