简体   繁体   English

如何在R中使用ggplot2编辑图例?

[英]How can I edit legend using ggplot2 in R?

I am trying to edit legend using gplot2 in R. Here is my dataframe (data): 我正在尝试在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

My code for making the scatter plot is this: 我制作散点图的代码是这样的:

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"))

My graph currently looks like this: 我的图目前看起来像这样:

在此处输入图片说明

Is it possible to also add the Value 2.5, 5, 10, 90, 95 and 97.5 in the legend along with the ones that are already there (25, 50, 75). 是否还可以在图例中添加值2.5、5、10、90、95和97.5,以及已经存在的值(25、50、75)。 I also need to add a title to my legend which is "Value nth". 我还需要在图例中添加标题“ Value nth”。 I have already done some googling but I am not able to work it out. 我已经进行了一些谷歌搜索,但无法解决。

Any help appreciated. 任何帮助表示赞赏。 Thank you. 谢谢。

One way to deal with the now cluttered legend is to increase its height using legend.key.height : 处理当前混乱的图例的一种方法是使用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"))

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM