r - "Bin"ggplot2 中的连续值基于获得更清晰颜色的标准(如因子级别着色)?

标签 r ggplot2

目前,我只是使用这样的东西:

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

这给出了类似这样的东西:

enter image description here

我的实际数据来自 1-5 级的主观评估,但我将类似的问题捆绑在一起并对其进行平均,因此它们不再是整数。

我正在绘制每个因素组合的评分,以可视化哪些组合产生了更高的评分。默认的连续比例并不真正“流行”,我希望获得颜色比例来处理这些值(0-1、1-2、... 4-5)的“bin”,使其颜色像 scale_colour_discrete对于因素确实如此。

所以,我的问题:

1)ggplot2是否可以通过scale_colour_continuous以某种方式“bin”这些,以便我可以获得要应用的默认因子级别着色方案,即使这是连续数据?

2)如果没有,是否有更简单的方法来创建一个新向量,我可以根据条件用数字/字母替换我的值?我是一个 R 新手,所以除了一堆 if() 或条件语句( test_data[test_data > 0 & test_data < 1, "values"] <- "a" 或类似的东西)之外我不确定。

最佳答案

最简单的解决方案是这样做

ggplot(transform(test_data, Discrete=cut(values, seq(0,5,1), include.lowest=T),...

现在您的 data.frame 将包含一列基于 values 列的因子,因此您可以执行 aes(..., color=Discrete ,...) 就在你的 ggplot 的上下文中。完成绘图后,test_data 的格式将被保留。

要保留离散列,当然,最好的选择是:

test_data$Discrete <- cut(values, seq(0,5,1), include.lowest=T)

关于r - "Bin"ggplot2 中的连续值基于获得更清晰颜色的标准(如因子级别着色)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763514/

相关文章:

r - 带有 ggplot2 的多个直方图 - 位置

R + ggplot + pdf 设备 + LaTeX : is it possible to embed fonts one time

r - 增加接近于零的值的色标分辨率

删除 ggplot 中的图例标题

r - 将模型拟合到高频时间序列并使用寓言进行短期预测

r - 如何从倒置的钟形曲线中采样

r - 使用 stringi 在 R 中生成唯一的随机字符串

r - 在 ggplot 函数中访问变量

r - 如何在ggplot2中制作半月图

r - 使用 rvest (R) 进行网络抓取时停止使用 url