绘图K-Means聚类

时间:2016-04-14 06:31:49

标签: r plot ggplot2

我想绘制K-Means聚类,总共有两个聚类,有两种不同的颜色,其样本如下所示。

x
            Name Cluster
1           A2M       1
2          AAAS       1
3          AACS       1
4         AAGAB       1
5          AAK1       1
6          AAMP       1
7          AARS       1
8         AARS2       1
9        AARSD1       1
10        AASDH       1
11     AASDHPPT       1
12         AASS       1
13         AATF       1
14         ABAT       1
15        ABCA1       1
16      ABCA11P       1
17        ABCA3       1
18        ABCA5       1
19       ABCB10       1
20        ABCB6       1
21        ABCB7       1
22        ABCB8       1
23        ABCC1       1
24       ABCC10       1
25        ABCC4       1
26        ABCC5       1
27        ABCD3       1
28        ABCD4       1
29        ABCE1       1
30        ABCF1       1
31        ABCF2       1
32        ABCF3       1
33        ABCG1       1
34       ABHD10       1
35       ABHD11       1
36       ABHD12       1
37       ABHD13       1
38      ABHD14A       1
39      ABHD14B       1
40        ABHD2       1
20286    ZNF749       2
20287     ZNF76       2
20288   ZNF804A       2
20289   ZNF804B       2
20290    ZNF835       2
20291    ZNF852       2
20292   ZNF861P       2
20293    ZNF865       2
20294   ZNF876P       2
20295     ZNF99       2
20296     ZNRF4       2
20297       ZP1       2
20298       ZP2       2
20299     ZPBP2       2
20300    ZSCAN1       2
20301   ZSCAN10       2
20302 ZSCAN12P1       2
20303    ZSWIM2       2
20304    ZSWIM4       2
20305      tAKR       2

数据框x有两个大小为15206和5099的群集。 我尝试了代码

library(ggplot2)
ggplot(x, aes(x$Name, x$Cluster, color = x$Cluster)) + geom_point()

得到错误:

  

UseMethod(“depth”)中的错误:     没有适用于“深度”的方法应用于“NULL”类的对象

1 个答案:

答案 0 :(得分:2)

请修改您的代码。无需在对象中引用变量。

xy <- data.frame(Name = LETTERS, Cluster = sample(1:3, size = 26, replace = TRUE))

library(ggplot2)

ggplot(xy, aes(x = Name, y = Cluster, color = as.factor(Cluster))) +
  geom_point()

enter image description here

如果您看到一些重叠,您可以随时抖动结果。

ggplot(xy, aes(x = Name, y = Cluster, color = as.factor(Cluster))) +
  geom_jitter(height = 0.05)

enter image description here