类型错误:列表索引必须是整数或切片,而不是列表matplotlib(散点)

2024-05-20 13:42:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用matplotlib打印数据。我以example为基础,用四个标签绘图。下面你可以找到代码。但是,我得到了这个错误

Traceback (most recent call last):
  File "visualization_SH_Male_female.py", line 86, in <module>
    main()
  File "visualization_SH_Male_female.py", line 58, in main
    plt.scatter(x_list[indices], y_list[indices], marker=markers[i], color=colors[j])
TypeError: list indices must be integers or slices, not list

在这个散点图中。有人能指出我如何将indices转换成整数吗?在

^{pr2}$

Tags: 数据inpymatplotlibmainexampleshline
2条回答

问题似乎是使用python列表而不是numpy数组。由于代码不可运行,下面是一个最小的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([.4,.8,1.2,1.6,2.0,2.4])
y = np.array([.1,.2,.3,.7,.6,.5])

lab = np.array([1,1,2,2,1,2])

for l in np.unique(lab):
    indices = (lab == l)
    plt.scatter(x[indices],y[indices], label=str(l))
plt.legend()
plt.show()

enter image description here

在python中,这行不通:

a = [1,2,3,4]
b = [2,3]
c = a[b]

因为索引([])需要是整数或切片,而不是列表。在

最简单的方法是创建一个子列表,只包含列表理解所需的项。在您的情况下,这是一种方法:

^{pr2}$

相关问题 更多 >