我正在尝试绘制颜色与其类标签对应的数据点。在数据可视化方面我对R更熟悉。在R中,我会做以下事情:
x = matrix(runif(100), 2, 20)
y = matrix(runif(100), 2, 20)
labels = c(rep(0, 20), rep(1, 20))
plot(rbind(x, y), col = labels)
然后我将能够得到两个类的数据点的散点图,它们的点颜色是标签。我不知道如何在python中执行此操作。到目前为止我所做的是
import numpy
plot(numpy.vstack((x,y)), c = labels)
但显然python不喜欢颜色的整数值....你的帮助将不胜感激!
答案 0 :(得分:1)
你走在正确的轨道上。您有三个数据向量:x
,y
和c
,其中c
是带有类标签的整数数组。
你能做的最简单的事情是:
import matplotlib.pyplot as plt
import numpy as np
# create some random data grouped into three groups
x = np.random.random(100)
y = np.random.random(100)
c = np.random.choice(range(3), 100)
# plot the data
fig = plt.figure()
ax = fig.add_subplot(111)
# plot x,y data with c as the color vector, set the line width of the markers to 0
ax.scatter(x, y, c=c, lw=0)
这会给你:
如果想要更好地控制颜色,甚至可以创建自己的颜色表,例如:
mycolors = np.array([ 'g', 'm', 'c' ])
ax.scatter(x, y, c=mycolors[c], lw=0)
现在颜色为0 =绿色,1 =洋红色,2 =青色:
当然,您也可以指定颜色三元组(RGB)或四元组(RGBA)而不是颜色名称。这为您提供了更精细的控制。
您也可以使用内置的色彩映射或创建自己的色彩映射。我发现上面的解决方案对于离散数据最为透明,只有很少的可能值。