假设我有一个如下所示的列表:
list_a = [[1.2, 0.5, 3.1,...], [7.3, 1.5, 3.9,...], [100, 200, 150, ...]]
该列表中的第一个和第二个子列表定义了(x, y)
我要绘制的值。第三个子列表包含与每个(x, y)
点关联的值(比如某个属性)。这些关联值只能是以下三个值之一:100, 150, 200
; 这意味着每一(x, y)
对都附有a 100
、 a150
或附加值。200
我想(x, y)
在散点图中绘制这些点,但根据第三个列表中的值给每个点一个标记。
所以,我想要例如(当然不是真正的代码):
if list_a[2][item] == 100 then use marker = 'o' (circle marker)
if list_a[2][item] == 150 then use marker = 's' (square marker)
if list_a[2][item] == 200 then use marker = '^' (triangle_up marker)
我能想到的唯一方法是重新打包list_a
,以便(x, y)
将第三个列表中与相同值关联的所有对移动到自己的列表中,如下所示:
list_100 =[[subset of x values], [subset of y values]]
list_150 =[[subset of x values], [subset of y values]]
list_200 =[[subset of x values], [subset of y values]]
然后分别绘制每个列表,每次设置适当的标记:
plot.scatter(list_100[0], list_100[1], marker='o')
plot.scatter(list_150[0], list_150[1], marker='s')
plot.scatter(list_200[0], list_200[1], marker='^')
我想知道是否有一种方法可以做到这一点,而无需重新打包原始列表,然后为第三个子列表中的每个值设置几个单独的图。