我正在尝试在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)。我还需要在图例中添加标题“ Value nth”。我已经进行了一些谷歌搜索,但无法解决。
任何帮助表示赞赏。 谢谢。
答案 0 :(得分: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"))