需要在R中的同一图表上绘制两个折线图

需要在R中的同一图表上绘制两个折线图,r,ggplot2,R,Ggplot2,使用R,我在各自的图表中有两个折线图。我需要它们都在同一张图表上。我查看了其他stackoverflow查询,但没有找到符合我需要的 在我的双线图中,我需要BA和careerBA在纵轴上的图形,G场作为横轴。每个G值(例如,1)都有一个匹配的BA和careerBA BA <- c(0.317, 0.298, 0.273, 0.280, 0.252, 0.204, 0.181, 0.241, 0.227, 0.233, 0.080, 0.285) careerBA <- c(0.27

使用R,我在各自的图表中有两个折线图。我需要它们都在同一张图表上。我查看了其他stackoverflow查询,但没有找到符合我需要的

在我的双线图中,我需要BA和careerBA在纵轴上的图形,G场作为横轴。每个G值(例如,1)都有一个匹配的BA和careerBA

BA <- c(0.317, 0.298, 0.273, 0.280, 0.252, 0.204, 0.181, 0.241, 0.227, 0.233, 0.080, 0.285)

careerBA <- c(0.279, 0.280, 0.245, 0.253, 0.276, 0.247, 0.265, 0.243, 0.274, 0.255, 0.236, 0.287)

G <- c(1,2,3,4,5,6,7,8,9,10,11,12)

df <- data.frame(BA, careerBA, G)
df

library(ggplot2)
p1 <- ggplot() + geom_line(aes(y = BA, x = G, color = "red"), data = df) + labs(title = "All Mets Age 37 Season", x = "Games", y = "Batting Average", caption = "Age 37 Mets") + scale_x_continuous(breaks=seq(0,160,20))
p1


p2 <- ggplot() + geom_line(aes(y = BAcareer, x = G), data = age37mets, color = "blue") + labs(title = "All Mets Age 37 Career", x = "Games", y = "Career Batting Average", caption = "Age 37 Mets") + scale_x_continuous(breaks=seq(0,160,20))
p2

一种解决方案是将数据重塑为更长的格式(这里我使用
tidyr
package中的
pivot\u longer
函数):

库(dplyr)
图书馆(tidyr)
df%>%pivot\u更长(-G,names\u to=“var”,values\u to=“val”)
#A tibble:24 x 3
G var val
1巴0.317
2 1卡雷尔巴0.279
3.2巴0.298
4.2卡雷尔巴0.28
53BA 0.273
6.3卡雷尔巴0.245
7.4巴0.28
8.4卡雷尔巴0.253
95BA0.252
10 5卡雷尔巴0.276
#…还有14行
如果要添加打印零件,可以编写:

库(dplyr)
图书馆(tidyr)
图书馆(GG2)
图书馆(比例尺)
df%>%pivot\u更长(-G,names\u to=“var”,values\u to=“val”)%>%
ggplot(aes(x=G,y=val,color=var))+
geom_线()+
比例y连续(标签=函数(x){格式(x,nsmall=3)})


这就是您想要的吗?

一个解决方案是将数据重新格式化为更长的格式(这里我使用的是
tidyr
软件包中的
pivot\u longer
函数):

库(dplyr)
图书馆(tidyr)
df%>%pivot\u更长(-G,names\u to=“var”,values\u to=“val”)
#A tibble:24 x 3
G var val
1巴0.317
2 1卡雷尔巴0.279
3.2巴0.298
4.2卡雷尔巴0.28
53BA 0.273
6.3卡雷尔巴0.245
7.4巴0.28
8.4卡雷尔巴0.253
95BA0.252
10 5卡雷尔巴0.276
#…还有14行
如果要添加打印零件,可以编写:

库(dplyr)
图书馆(tidyr)
图书馆(GG2)
图书馆(比例尺)
df%>%pivot\u更长(-G,names\u to=“var”,values\u to=“val”)%>%
ggplot(aes(x=G,y=val,color=var))+
geom_线()+
比例y连续(标签=函数(x){格式(x,nsmall=3)})


这就是你要找的吗?

dc37,这几乎正是我需要的。在垂直轴上,如何使小数点显示为小数点后的三位数字,例如0.300而不是0.30?我相应地编辑了答案。您可以使用
scales
库中的
format
函数。它回答了你的问题吗?看起来很棒。你能推荐一个源代码来解释如何使用pivot_longer和scales库中的format函数吗?实际上,我使用的
format
函数不是来自
scales
,而是来自
base
。因此,只要执行
?format
就可以解释此函数。对于
pivot\u longer
,您可以检查以下链接:。否则,你有很多资源和问题/答案,关于这些37,这几乎正是我需要的。在垂直轴上,如何使小数点显示为小数点后的三位数字,例如0.300而不是0.30?我相应地编辑了答案。您可以使用
scales
库中的
format
函数。它回答了你的问题吗?看起来很棒。你能推荐一个源代码来解释如何使用pivot_longer和scales库中的format函数吗?实际上,我使用的
format
函数不是来自
scales
,而是来自
base
。因此,只要执行
?format
就可以解释此函数。对于
pivot\u longer
,您可以检查以下链接:。否则,你会有很多关于这些的资源和问题/答案
structure(list(BA = c(0.317, 0.298, 0.273, 0.28, 0.252, 0.204, 
0.181, 0.241, 0.227, 0.233, 0.08, 0.285), careerBA = c(0.279, 
0.28, 0.245, 0.253, 0.276, 0.247, 0.265, 0.243, 0.274, 0.255, 
0.236, 0.287), G = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)), class = "data.frame", row.names = c(NA, 
-12L))