颜色geom_point 基于y轴间隔并添加线性回归线

Color geom_point based on y axis intervals and add linear regression line

我有兴趣了解如何为散点图着色,以便根据 y 轴上的间隔对点进行着色。我想编写以下代码:<10 = 蓝色,10-20 = 橙色,20-30 = 绿色,& >30=紫色。目前,我将颜色设置为 factor(n_ct) 并且我得到了彩虹。此外,我不断收到一条警告消息,提示“未定义宽度。设置为‘position_dodge(width =?)”,即使我在其中设置了 position =“dodge”,所以我不知道这是不是我的错误或rstudios。我还想添加一条回归线。

performance <- read_csv(performance.csv)
cumulative <- read_csv(cumulative.csv)

performance_2_n_ct <performance %>% select(Sample, AvgCov)
cumulative_2_n_ct <- cumulative %>% select(Sample, n_ct)

cumulative_3_n_ct <- cumulative_2_n_ct %>%
filter(!is.na(n_ct))

all_data_n_ct_ <- left_join(cumulative_3_n_ct, performance_2_n_ct, by = "Sample")

n_ct_finale <- ggplot(data = all_data_n_ct_, aes(y=n_ct, x = AvgCov, color = factor(n_ct))) +
 geom_point(stat = "identity", position = "dodge")

下面是我的图片。

Picture

首先,您需要将这些值分组到离散而非连续的特定范围或间隔中。简单地将它们转换为一个因素是行不通的。然后,您可以简单地将该间隔传递给 color 美学。

df <- mtcars %>%
  mutate(interval = case_when(
    mpg < 15 ~ 'interval_1',
    mpg >= 15 & mpg < 20 ~ 'interval_2',
    mpg >=20 & mpg < 30 ~ 'interval_3',
    TRUE ~ 'interval_4'
  ))
ggplot(data = df, aes(x = drat,
                      y = hp,
                      color = interval)) +
  geom_point() 

如果您有想要使用的特定颜色,可以使用 scale_color_manual():

... +
scale_color_manual(values = c("red", 
                                "cornflowerblue",
                                "green",
                                "purple"))