将一个分类变量绘制在另一个分类变量上。

3
我正在比较不同的聚类方法,并且想要比较两种不同的方法(或参数集)是否定义了相似的聚类。我的聚类是在数据框中定义为分类因子(分类变量)。
如果我使用plot()函数,其中x是一个分类变量,y是一个连续变量,我会得到一个箱形图。如果我做同样的事情,但是将y改为另一个分类变量,我会得到一个奇怪的条形图(如下图所示)。你如何解释这种图形? plot you get when plotting a categorical variable against another categorical variable 在这个图中,x(df$category1)有13个级别: [1] "A" "B" "C" "D" "cluster1" "cluster5" [7] "cluster2" "cluster8" "cluster0" "cluster6" "cluster4" "cluster3" [13] "cluster7"y(df$category2)只有12个级别: [1] "A" "B" "C" "D" "cluster5" "cluster0" [7] "cluster4" "cluster2" "cluster3" "cluster6" "cluster1" "cluster7" A、B、C和D在两个列中是相同的,其余的聚类不一定相同,因为它们是不同聚类运行的结果。 编辑:使用的代码是plot(df$category1, df$category2)

你是用哪些代码来创建这个的? - Richie Cotton
plot(df$category1, df$category2) - pedrosaurio
同时描述您希望情节传达的故事。 - Paul Hiemstra
@pedrosaurio:这仍然无法使您的问题可重现。您需要提供示例数据。对于两个分类变量,您会得到一个脊柱图,尽管默认的脊柱图看起来与您的图不同。 - Richie Cotton
2个回答

4
xy都是因素时,plot调用spineplot。以下是该函数帮助页面的示例:
treatment <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2),
    labels = c("placebo", "treated"))
improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
    levels = c(1, 2, 3),
    labels = c("none", "some", "marked"))

spineplot(improved, treatment)

虽然这看起来有点不同于你拥有的图表。

1
“spineplot” 就是我想知道的。我猜它们看起来不太对是因为 A、B、C 和 D 四个水平在两个因素中都是相同的。 - pedrosaurio
1
谢谢。这完全是防 Google 的!你不可能知道在 R 中,x 和 y 都是分类变量的情况下,它们的图表被称为 spineplot。(好吧,除非你反向搜索每个基本绘图函数的每一页)。 - smci

3

虽然不是你所询问的,但建议试试使用mosaicplot()函数。它可以生成适用于两个分类变量的图形。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接