【问题标题】:How to plot a list of lists against one list如何针对一个列表绘制列表列表
【发布时间】:2018-07-18 10:34:40
【问题描述】:
import matplotlib.pyplot as plt
V = [[10,20,30,40],[30,40,50,50,70]] # It may consist n lists, each list with m values
I = [[1,2,3,4],[3,4,5,6,7]] # It may consist n lists, each list with m values
for t in list(zip(V,I)):  
    plt.plot(*t)
    plt.show()

输出为:

[以上VI由2个列表组成,每个列表有4个元素。我想在同一个 XY 图中绘制 VI。这个 V 和 I 数据将有 2 个图。 ]

【问题讨论】:

  • 显示你尝试过的代码。
  • 我投票结束这个问题,因为他只是要求我们为他编写代码
  • 迭代 VI 列表中的 zip 会产生 n 个 xy 对,您可以使用它们来绘制该特定对。
  • 我只是 Python(3 天)和 stackoverflow(4 小时)的初学者。不知道怎么写,求大神帮忙。对不起。我并不是说有人会为我编写代码。我尝试了我的方法。但是,无法得到它。我已经为上面的代码添加了错误输出。
  • 你需要展示你用来尝试解决这个问题的代码。如错误消息所示,您不能仅使用 plt.plot(V,I) 绘制嵌套列表。无论如何,@taras 在他们的评论中给了你方法

标签: python python-3.x matplotlib


【解决方案1】:

只需压缩 V 和 I 以获取元组列表,然后绘制每个元组

for t in zip(V,I):
    plt.plot(*t)

plt.show()

结果

【讨论】:

  • 非常感谢您的代码。我已经执行了代码。它给出了两个不同的数字,每个数字组成一个情节。但是,我希望一个人物有两个情节。帮助我。
  • @Msquare 这不会产生 2 个图,除非你有一个额外的 plt.figure() 某处
  • @Msquare。正如 DavigG 所提到的,这不能创建两个图。我只得到一个情节
  • 我没有在文本中的任何地方使用plt.figure()。我第一次画情节。这是我用来执行它的代码: import matplotlib.pyplot as plt `V = [[10,20,30,40],[30,40,50,50,70]] # 它可能包含 n 个列表,每个列表有 m 个值 I = [[1,2,3,4],[3,4,5,6,7]] # 它可能包含 n 个列表,每个列表有 m 个值,用于 t in list(zip(V ,I)): plt.plot(*t) plt.show()'
  • 现在,我明白了。非常感谢苏尼莎。我知道我在 for 循环中提到了 plt.show() ,这是两个情节的原因。什么时候,它被放置在循环之外,它给出了一个我想要的情节。非常感谢。
猜你喜欢
  • 2020-12-25
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
相关资源
最近更新 更多