1

这是生成平行坐标图的代码:

require(MASS)
shoes <- data.frame(shoes)
parcoord(shoes)

shoes数据集用于显示配对 t 检验的功效,这只是背景信息。鞋子有两列A和B,分别代表两种鞋底材质的磨损。正确分析,材料之间存在巨大差异。

显示配对数据的一个好方法是使用平行坐标图,但正如您所见,如果没有一些颜色,它几乎什么都不是。我想添加两种颜色,比如 red whenA > B和 green when A < B。两种情况都会发生:

> shoes$A > shoes$B
 [1] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE

我的问题是parcoord()在观察时会循环颜色,所以我不确定如何根据逻辑测试指定颜色。我试过了

parcoord(shoes, col = ifelse(shoes$A > shoes$B, "red", "green"))

和各种玩弄数字(除了加 26 之外还有很多)

my_colors <- colors()[as.numeric(shoes$A > shoes$B) + 26]
parcoord(shoes, col = my_colors)

但似乎没有任何效果。我要么得到一系列颜色,要么得到所有一种颜色,要么得到除了顶部和底部条目之外的所有一种颜色。我想FALSE生成一种颜色,TRUE生成另一种颜色。

4

1 回答 1

1

我不确定我是否直截了当,但您的条件A > B仅适用于shoes.

shoes <- within(shoes, criterium <- ifelse(A > B, "bigger", "smaller"))

       A    B criterium
1  13.2 14.0   smaller
2   8.2  8.8   smaller
3  10.9 11.2   smaller
4  14.3 14.2    bigger
5  10.7 11.8   smaller
6   6.6  6.4    bigger
7   9.5  9.8   smaller
8  10.8 11.3   smaller
9   8.8  9.3   smaller
10 13.3 13.6   smaller

minmax <- c(min(min(shoes$A), min(shoes$B)), max(max(shoes$A), max(shoes$B)))

> minmax
[1]  6.4 14.3

因此,您的平行坐标图将仅以“红色”显示顶部和底部条目。换句话说:您的解决方案是正确的。

于 2019-03-27T06:59:01.460 回答