现在,我只是使用这样的东西:
test_data$level <- rep("", nrow(test_data))
test_data[test_data$value <= 1, ]$level <- "1"
test_data[test_data$value > 1 & test_data$value <= 2, ]$level <- "2"
...
test_data[test_data$value > 4 & test_data$value <= 5, ]$level <- "5"
只是想知道在 R 中是否有更好的方法可以做到这一点,或者只是scale
通过应用一些参数ggplot2
来进行分类。
可能有几种方法可以解决这个问题,所以很难准确地表达我的问题。这是要点......我有这样的数据:
set.seed(123)
test_data <- data.frame(var1 = rep(LETTERS[1:3], each = 5),
var2 = rep(letters[1:5], 3),
value = runif(30, 1, 5))
test_data
var1 value
1 A 2.150310
2 B 4.153221
3 C 2.635908
4 D 4.532070
5 E 4.761869
6 F 1.182226
7 G 3.112422
8 H 4.569676
9 I 3.205740
10 J 2.826459
我有更多的数据点,并且正在绘制这样的图:
library(ggplot2)
p <- ggplot(test_data, aes(x = var1, y = var2, colour = value))
p <- p + geom_jitter(position = position_jitter(width = 0.1, heigh = 0.1))
p
这给出了这样的东西:
我的实际数据来自 1-5 个评分的主观评估,但我将类似的问题捆绑在一起并将它们平均在一起,因此它们不再是整数。
我正在绘制每个因素组合的评分,以可视化哪些组合产生了更高的评分。默认的连续比例并没有真正“流行”,我想让颜色比例来处理这些值(0-1、1-2、... 4-5)的“箱”,就像scale_colour_discrete
这样为因素。
所以,我的问题:
1) ggplot2 是否可以通过某种方式“bin”这些,scale_colour_continuous
这样即使这是连续数据,我也可以应用默认因子级别着色方案?
2)如果没有,有没有更简单的方法来创建一个新的向量,我根据标准用数字/字母代替我的值?我有点 R 新手,所以我不确定除了一堆if()
或条件语句(test_data[test_data > 0 & test_data < 1, "values"] <- "a"
或类似的东西)。