根据Python中的类标签绘制数据点

时间:2014-07-17 16:10:42

标签: python r plot

我正在尝试绘制颜色与其类标签对应的数据点。在数据可视化方面我对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不喜欢颜色的整数值....你的帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。您有三个数据向量:xyc,其中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)

这会给你:

enter image description here

如果想要更好地控制颜色,甚至可以创建自己的颜色表,例如:

mycolors = np.array([ 'g', 'm', 'c' ])
ax.scatter(x, y, c=mycolors[c], lw=0)

现在颜色为0 =绿色,1 =洋红色,2 =青色:

enter image description here

当然,您也可以指定颜色三元组(RGB)或四元组(RGBA)而不是颜色名称。这为您提供了更精细的控制。

您也可以使用内置的色彩映射或创建自己的色彩映射。我发现上面的解决方案对于离散数据最为透明,只有很少的可能值。