ggplot:分组和绘制多条线,但分开处理
ggplot: grouping and plotting multiple lines, but handle them separately
我有这个数据框:
df_long:
year variable value
1970 Argentina 20
1980 Argentina 30
1990 Argentina 80
1970 Belgium 10
1980 Belgium 22
1990 Belgium 80
1970 U.S. 12
1980 U.S. 36
1990 U.S. 80
1970 Australia 11
1980 Australia 12
1990 Australia 90
我这样做了:
p <- ggplot(df_long, aes(year, value)) +
geom_line(aes(colour = variable, group = variable))
show(p)
我可以在同一张图上看到 4 条线,每个国家一条。
但是我不知道如何 select 这些行分别来操作它们。例如,为阿根廷线赋予红色等。
另外,我想添加一个带有 2 列的 facet_grid() ,这样我就可以在左边的图中看到来自阿根廷 + 澳大利亚的线,在右边的图中可以看到来自比利时的线 + U.S.
如何划分分组才能做到这一点?
试试这个:
将新列添加到您的 tibble
:
df <- df %>% mutate(group = case_when(
variable %in% c("Australia", "Argentina") ~ "group 1",
variable %in% c("Belgium", "U.S.") ~ "group 2"
))
情节新df
:
ggplot(df, aes(year, value)) +
geom_line(aes(colour = variable, group = variable)) +
scale_color_manual(values=c("red", "blue", "green", "orange")) +
facet_wrap(~group)
使用 scale_color_manual()
您可以单独控制每一行的颜色
我有这个数据框: df_long:
year variable value
1970 Argentina 20
1980 Argentina 30
1990 Argentina 80
1970 Belgium 10
1980 Belgium 22
1990 Belgium 80
1970 U.S. 12
1980 U.S. 36
1990 U.S. 80
1970 Australia 11
1980 Australia 12
1990 Australia 90
我这样做了:
p <- ggplot(df_long, aes(year, value)) +
geom_line(aes(colour = variable, group = variable))
show(p)
我可以在同一张图上看到 4 条线,每个国家一条。 但是我不知道如何 select 这些行分别来操作它们。例如,为阿根廷线赋予红色等。 另外,我想添加一个带有 2 列的 facet_grid() ,这样我就可以在左边的图中看到来自阿根廷 + 澳大利亚的线,在右边的图中可以看到来自比利时的线 + U.S.
如何划分分组才能做到这一点?
试试这个:
将新列添加到您的
tibble
:df <- df %>% mutate(group = case_when( variable %in% c("Australia", "Argentina") ~ "group 1", variable %in% c("Belgium", "U.S.") ~ "group 2" ))
情节新
df
:ggplot(df, aes(year, value)) + geom_line(aes(colour = variable, group = variable)) + scale_color_manual(values=c("red", "blue", "green", "orange")) + facet_wrap(~group)
使用 scale_color_manual()
您可以单独控制每一行的颜色