我是R的新手,我也想绘制两个带有图例的向量。 Df 1看起来像这样
> df1
df1
1 0.03789634
2 0.24012665
3 0.33449574
4 0.28389631
5 0.27714124
6 0.27867639
7 0.35170168
8 0.32454339
9 0.20677891
10 0.34182049
Df 2看起来像这样:
> df2
df2
1 0.07975460
2 0.08639309
3 0.07079646
4 0.08163265
5 0.08139535
6 0.10379747
7 0.09550562
8 0.07961783
9 0.09225092
10 0.09090909
我可以按照以下步骤将它们绘制在一起,但是我认为这太过分了,而且我发现添加图例非常困难。有没有更简单的方法将它们与级别绑定在一起,并以更优雅的方式使用ggplot?
df <- bind_cols(df1, df2)
p <- ggplot(df, aes(visits), fill=df) + scale_x_continuous(limits=c(1,10), breaks=1:10)
p + geom_line(aes(y=df1), colour="blue") + geom_line(aes(y=df2), colour="red") +
ggtitle('Df1 versus Df2') +
ylab('Values') + xlab('Visits') +
theme(plot.title = element_text(hjust = 0.5))
答案 0 :(得分:0)
像这样吗?
library(tidyverse) # for ggplot and dplyr-stuff
library(data.table) # for fread and melt
df1 <- fread('no df1
1 0.03789634
2 0.24012665
3 0.33449574
4 0.28389631
5 0.27714124
6 0.27867639
7 0.35170168
8 0.32454339
9 0.20677891
10 0.34182049')
df2 <- fread('no df2
1 0.07975460
2 0.08639309
3 0.07079646
4 0.08163265
5 0.08139535
6 0.10379747
7 0.09550562
8 0.07961783
9 0.09225092
10 0.09090909')
right_join(df1, df2) %>% melt(id.vars = 'no') %>%
ggplot(aes(x = no,y = value, color = variable)) +
geom_line() +
ggtitle('Df1 versus Df2') +
ylab('Values') + xlab('Visits') +
theme(plot.title = element_text(hjust = 0.5)) +
scale_color_manual(values = c('blue', 'red'))