【问题标题】:ploting scatter plot with 2D list用二维列表绘制散点图
【发布时间】:2015-03-31 08:38:27
【问题描述】:

我有两组数据,第一组数据是一维列表,第二组数据是二维列表。我想绘制一个散点图,第一组数据为 x,第二组数据为 y。但是,二维列表中元素的长度是不相同的,例如 x=[1,2,3] y = [[1,2], [3,4,5],[7,6]] ,所以当我尝试绘图时,我会收到警告

ValueError: setting an array element with a sequence.

如何解决这个问题?谢谢

【问题讨论】:

  • 很抱歉我没有在这里发布我的代码,因为它太长了,我已经在我的描述中概述了问题。

标签: python matplotlib scatter-plot


【解决方案1】:

我假设您不想绘制 y 中不存在的点。您可以将这些替换为 None,以下应该可以工作:

import numpy as np
import matplotlib.pyplot as plt

#Define arrays
x = [1,2,3]
y = [[1,2], [3,4,5],[7,6]]

#Padd y with None to length of x
for i in y:
    while len(i) < len(x):
        i.append(None)

for yn in y:
    plt.scatter(x,yn)

plt.show()

【讨论】:

  • 感谢您的回答,但问题是y中有很多元素,不可能为每个元素手动添加None。
  • 您可以根据需要使用某种形式的循环来填充数组,我已经编辑了答案。
猜你喜欢
  • 2019-01-08
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 2017-09-13
  • 2015-08-02
相关资源
最近更新 更多