【问题标题】:Changing the colors of geom_segment in R在 R 中更改 geom_segment 的颜色
【发布时间】:2018-08-28 14:40:34
【问题描述】:

大家好,我是 R 新手,一直在尝试绘制散点图并将其与 2 组数据(基线和后续数据)进行比较。 这些是我当前的代码:

ggplot(data) + 
  geom_point(aes (x = data$x_baseline , y= data$y_baseline, color = "red")) + 
  geom_point (aes (x = data$x_followup, y = data$y_followup, color = "blue")) + 
  xlab("X") + 
  ylab ("Y") +
  geom_segment(data = data , aes(x=data$x_baseline, xend = data$x_followup, y=data$y_baseline, yend = data$y_followup))

我得到了这样的东西:

我如何改变线条的颜色,如果它是一个增加的值,它是绿色的,如果它是一个减少的值,它是蓝色的?

谢谢大家!

head(data)
ID y_baseline y_followup y_diff x_baseline x_followup x_diff
1     X3_0        59.03487        58.91077  -0.1240958             73.80               77.28    3.48
2     X5_0        58.96254        61.33064   2.3681075               82.71               85.45    2.74
3     X6_0        56.41316        52.37936  -4.0338025               73.14               76.95    3.81
4     X9_0        53.63238        56.31112   2.6787367               76.84               80.03    3.19
5    X10_0        62.64327        67.33818   4.6949102               75.00               77.97    2.97
6    X11_0        61.68968        61.03282  -0.6568605               76.94               79.92    2.98

【问题讨论】:

标签: r ggplot2


【解决方案1】:

你可以试试这个。它对我有用:

library(ggplot2)

 data <- data.frame(row.names=paste0('row',1:20))
 data$x_baseline <- sample(1:20)
 data$x_followup <- sample(1:20)
 data$y_baseline <- sample(1:20)
 data$y_followup <- sample(1:20)


 data$lineColor <- factor(ifelse(data$x_followup - data$x_baseline < 0,'increase','decrease'))

 ggplot(data) + 
  geom_point(aes (x = data$x_baseline , y= data$y_baseline), color = "red") + 
  geom_point (aes (x = data$x_followup, y = data$y_followup), color = "blue") + 
  xlab("X") + 
  ylab ("Y") +
  geom_segment(data = data , aes(x=data$x_baseline, xend = data$x_followup, y=data$y_baseline, yend = data$y_followup, color=data$lineColor))

我将color='red' 移到aes() 部分之外,用于geom_points() 并在您的数据中创建了一个名为 lineColor 的新变量(因子),用于通过在 geom_segment() 中添加 color=data$lineColor 来为线条着色

或者,您可以在不添加新列的情况下执行此操作,并添加: color=factor(ifelse(data$x_diff &lt; 0,'decreasing','increasing')) 改为 geom_segment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2018-01-04
    • 2020-06-22
    • 1970-01-01
    • 2021-06-30
    相关资源
    最近更新 更多