【问题标题】:How can I edit legend using ggplot2 in R?如何在 R 中使用 ggplot2 编辑图例?
【发布时间】:2019-07-16 15:21:51
【问题描述】:

我正在尝试在 R 中使用 gplot2 编辑图例。这是我的数据框(数据):

Gene    Age Value   Values
GeneX   42.5    2.5 0.011
GeneX   47.5    2.5 0.017
GeneX   52.5    2.5 0.012
GeneX   57.5    2.5 0.004
GeneX   62.5    2.5 0.010
GeneX   67.5    2.5 0.017
GeneX   72.5    2.5 0.014
GeneX   42.5    5   0.016
GeneX   47.5    5   0.019
GeneX   52.5    5   0.017
GeneX   57.5    5   0.006
GeneX   62.5    5   0.012
GeneX   67.5    5   0.020
GeneX   72.5    5   0.017
GeneX   42.5    10  0.019
GeneX   47.5    10  0.020
GeneX   52.5    10  0.020
GeneX   57.5    10  0.017
GeneX   62.5    10  0.019
GeneX   67.5    10  0.019
GeneX   72.5    10  0.018
GeneX   42.5    25  0.022
GeneX   47.5    25  0.023
GeneX   52.5    25  0.024
GeneX   57.5    25  0.023
GeneX   62.5    25  0.024
GeneX   67.5    25  0.026
GeneX   72.5    25  0.022
GeneX   42.5    50  0.028
GeneX   47.5    50  0.029
GeneX   52.5    50  0.029
GeneX   57.5    50  0.031
GeneX   62.5    50  0.030
GeneX   67.5    50  0.033
GeneX   72.5    50  0.032
GeneX   42.5    75  0.036
GeneX   47.5    75  0.036
GeneX   52.5    75  0.038
GeneX   57.5    75  0.042
GeneX   62.5    75  0.040
GeneX   67.5    75  0.043
GeneX   72.5    75  0.040
GeneX   42.5    90  0.045
GeneX   47.5    90  0.043
GeneX   52.5    90  0.046
GeneX   57.5    90  0.048
GeneX   62.5    90  0.052
GeneX   67.5    90  0.055
GeneX   72.5    90  0.057
GeneX   42.5    95  0.062
GeneX   47.5    95  0.048
GeneX   52.5    95  0.050
GeneX   57.5    95  0.059
GeneX   62.5    95  0.066
GeneX   67.5    95  0.057
GeneX   72.5    95  0.058
GeneX   42.5    97.5    0.090
GeneX   47.5    97.5    0.067
GeneX   52.5    97.5    0.064
GeneX   57.5    97.5    0.063
GeneX   62.5    97.5    0.079
GeneX   67.5    97.5    0.061
GeneX   72.5    97.5    0.059

我制作散点图的代码是这样的:

library(ggplot2)
library(dplyr)

graph <- data %>%
    ggplot(aes(x = data$Age,
        y = data$Values,
        group = data$Value))
graph <- graph +
    geom_line(aes(color = data$Value), na.rm = TRUE) +
    geom_point(aes(color = data$Value),
                size = 1,
                na.rm = TRUE) +
    labs(title="GeneX", x="Groups", y="Values") + 

    scale_x_continuous(breaks = c(42.5, 47.5, 52.5, 57.5, 62.5, 67.5, 72.5),
        labels = c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7")) +
    scale_y_continuous(breaks = c(0, 0.025, 0.050, 0.075, 0.100),
        labels = c("0", "25", "50", "75", "100"),
        limits = c(0,0.105)) +
    theme(legend.title=element_blank()) +
     guides(fill = guide_legend(title = "On Treatment"))

我的图表目前如下所示:

是否可以在图例中添加值 2.5、5、10、90、95 和 97.5 以及已经存在的值(25、50、75)。我还需要为我的图例添加一个标题,即“第 n 个值”。我已经做了一些谷歌搜索,但我无法解决。

任何帮助表示赞赏。 谢谢。

【问题讨论】:

  • 您是否尝试过设置色标间断点,就像您为 x 和 y 标度设置间断点一样?
  • @Camille,你能指出在哪里使用这些代码行吗?我确实尝试过诸如 scale_fill_discrete 之类的东西来添加名称或中断。它产生图表,但什么也不做。你能在我的代码中指出这一点吗?
  • 您指定了颜色,而不是填充,因此调整填充比例不会改变任何内容。就像你有一个scale_x_continuous,你可以设置一个scale_color_continuous。还有don't use $ inside aes
  • 另外,不完全相关,但散点图通常表示代表 2 个连续变量的点,通常是一个因变量和自变量
  • @Camille,非常感谢。这行得通。我只是在尝试调整区域,因为图例现在看起来太混乱了。

标签: r ggplot2 legend


【解决方案1】:

处理现在杂乱无章的图例的一种方法是使用legend.key.height 增加其高度:

library(dplyr)
library(readr)
library(ggplot2)

"Gene   Age   Value   Values
GeneX   42.5    2.5  0.011
GeneX   47.5    2.5  0.017
GeneX   52.5    2.5  0.012
GeneX   57.5    2.5  0.004
GeneX   62.5    2.5  0.010
GeneX   67.5    2.5  0.017
GeneX   72.5    2.5  0.014
GeneX   42.5    5    0.016
GeneX   47.5    5    0.019
GeneX   52.5    5    0.017
GeneX   57.5    5    0.006
GeneX   62.5    5    0.012
GeneX   67.5    5    0.020
GeneX   72.5    5    0.017
GeneX   42.5    10   0.019
GeneX   47.5    10   0.020
GeneX   52.5    10   0.020
GeneX   57.5    10   0.017
GeneX   62.5    10   0.019
GeneX   67.5    10   0.019
GeneX   72.5    10   0.018
GeneX   42.5    25   0.022
GeneX   47.5    25   0.023
GeneX   52.5    25   0.024
GeneX   57.5    25   0.023
GeneX   62.5    25   0.024
GeneX   67.5    25   0.026
GeneX   72.5    25   0.022
GeneX   42.5    50   0.028
GeneX   47.5    50   0.029
GeneX   52.5    50   0.029
GeneX   57.5    50   0.031
GeneX   62.5    50   0.030
GeneX   67.5    50   0.033
GeneX   72.5    50   0.032
GeneX   42.5    75   0.036
GeneX   47.5    75   0.036
GeneX   52.5    75   0.038
GeneX   57.5    75   0.042
GeneX   62.5    75   0.040
GeneX   67.5    75   0.043
GeneX   72.5    75   0.040
GeneX   42.5    90   0.045
GeneX   47.5    90   0.043
GeneX   52.5    90   0.046
GeneX   57.5    90   0.048
GeneX   62.5    90   0.052
GeneX   67.5    90   0.055
GeneX   72.5    90   0.057
GeneX   42.5    95   0.062
GeneX   47.5    95   0.048
GeneX   52.5    95   0.050
GeneX   57.5    95   0.059
GeneX   62.5    95   0.066
GeneX   67.5    95   0.057
GeneX   72.5    95   0.058
GeneX   42.5    97.5 0.090
GeneX   47.5    97.5 0.067
GeneX   52.5    97.5 0.064
GeneX   57.5    97.5 0.063
GeneX   62.5    97.5 0.079
GeneX   67.5    97.5 0.061
GeneX   72.5    97.5 0.059" %>% 
  read_table() %>% 
  ggplot(aes(x = Age,
             y = Values,
             group = Value)) +
  geom_line(aes(color = Value), na.rm = TRUE) +
  geom_point(aes(color = Value), size = 1, na.rm = TRUE) +
  labs(title="GeneX", x="Groups", y="Values") + 
  scale_x_continuous(breaks = c(42.5, 47.5, 52.5, 57.5, 62.5, 67.5, 72.5),
                     labels = c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7")) +
  scale_y_continuous(breaks = c(0, 0.025, 0.050, 0.075, 0.100),
                     labels = c("0", "25", "50", "75", "100"),
                     limits = c(0,0.105)) +
  scale_color_continuous(name = "Value nth", 
                         breaks = c(2.5, 5, 10, 25, 50, 75, 90, 95, 97.5)) + 
  theme(legend.key.height = unit(3, "cm"))

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2011-09-06
    • 2021-12-05
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多