【问题标题】:How to plot a line and set the color of every line in a nested list?如何绘制一条线并设置嵌套列表中每条线的颜色?
【发布时间】:2019-03-26 03:20:14
【问题描述】:

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

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 中的每个子列表并获得三种不同颜色的线条?

【问题讨论】:

  • 这是否实现了你想要的:for sublist in a: plt.plot(sublist, [triple(s) for s in sublist], 'o-') ?

标签: python list loops matplotlib


【解决方案1】:
  1. 您指定了color='red',因此您的每条线都用一种颜色绘制。
  2. 您使用plt.scatter 来绘制圆圈。不需要这样做,你可以在plt.plot中使用marker参数。
  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()

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 1970-01-01
    • 2015-04-16
    • 2017-06-18
    • 2021-09-19
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多