[英]how to use ggplot, geom_line and geom_ribbon to draw multiple y axis in a layout
底部有不同的數據集。
1-1.數據集(cidf_min.csv)姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 |
---|---|---|---|---|---|---|---|
蘋果 | 1 | 0.056008 | 100 | 0.95 | 0.05458 | 0.059141 | 2 |
蘋果 | 2 | 0.048256 | 100 | 0.95 | 0.046363 | 0.059142 | 2 |
蘋果 | 3 | 0.042819 | 100 | 0.95 | 0.040164 | 0.059143 | 2 |
蘋果 | 4 | 0.038663 | 100 | 0.95 | 0.035155 | 0.059144 | 2 |
蘋果 | 5 | 0.035325 | 100 | 0.95 | 0.030146 | 0.059145 | 2 |
姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 | 最大限度 |
---|---|---|---|---|---|---|---|---|
蘋果 | 2 | 0.01854 | 100 | 0.95 | -0.06963 | 0.045235 | 2 | 2 |
'''code''' cidf<-read.csv("D:/cidf_min.csv") newdf<-read.csv("D:/newdf_min.csv") p_min<-ggplot(cidf, aes(x=number, y=value, group=name))+geom_line(aes(color=level))+geom_ribbon(aes(ymin=lower, ymax=upper, fill=level, group=name), alpha=0.3)+geom_text(data=newdf, aes(label=name, color=level), hjust=-0.2, vjust=0.5, size=3, show.legend=F)+coord_cartesian(xlim=c(0,max(cidf$number)*1.2))+xlab(~"Con (\×"~C[max]*")")+ylab(~"score ("*mu*"C/"*mu*"F)")+theme_bw()
2-1.數據集(cidf_max.csv)
姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 |
---|---|---|---|---|---|---|---|
蘋果 | 1 | 0.068832 | 100 | 0.95 | 0.061945 | 0.069416 | 2 |
蘋果 | 2 | 0.065256 | 100 | 0.95 | 0.053687 | 0.065841 | 2 |
蘋果 | 3 | 0.060492 | 100 | 0.95 | 0.046201 | 0.06155 | 2 |
蘋果 | 4 | 0.05585 | 100 | 0.95 | 0.039848 | 0.058739 | 2 |
蘋果 | 5 | 0.047585 | 100 | 0.95 | 0.033555 | 0.056066 | 2 |
姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 | 最大限度 |
---|---|---|---|---|---|---|---|---|
蘋果 | 2 | 0.024221 | 100 | 0.95 | -0.04546 | 0.076362 | 2 | 2 |
'''code''' cidf<-read.csv("D:/cidf_max.csv") newdf<-read.csv("D:/newdf_max.csv") p_max<-ggplot(cidf, aes(x=number, y=value, group=name))+geom_line(aes(color=level))+geom_ribbon(aes(ymin=lower, ymax=upper, fill=level, group=name), alpha=0.3)+geom_text(data=newdf, aes(label=name, color=level), hjust=-0.2, vjust=0.5, size=3, show.legend=F)+coord_cartesian(xlim=c(0,max(cidf$number)*1.2))+xlab(~"Con (\×"~C[max]*")")+ylab(~"score ("*mu*"C/"*mu*"F)")+theme_bw()
3-1.數據集(cidf_mean.csv)
姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 |
---|---|---|---|---|---|---|---|
蘋果 | 1 | 0.069673 | 100 | 0.95 | 0.069673 | 0.069673 | 2 |
蘋果 | 2 | 0.06133 | 100 | 0.95 | 0.057955 | 0.062792 | 2 |
蘋果 | 3 | 0.060497 | 100 | 0.95 | 0.046201 | 0.06155 | 2 |
蘋果 | 4 | 0.054623 | 100 | 0.95 | 0.044241 | 0.058739 | 2 |
蘋果 | 5 | 0.039852 | 100 | 0.95 | 0.031906 | 0.043719 | 2 |
姓名 | 數字 | 價值 | 樣品 | 配置文件 | 降低 | 上 | 等級 | 最大限度 |
---|---|---|---|---|---|---|---|---|
蘋果 | 2 | 0.014323 | 100 | 0.95 | -0.06793 | 0.045717 | 2 | 2 |
'''code''' cidf<-read.csv("D:/cidf_mean.csv") newdf<-read.csv("D:/newdf_mean.csv") p_mean<-ggplot(cidf, aes(x=number, y=value, group=name))+geom_line(aes(color=level))+geom_ribbon(aes(ymin=lower, ymax=upper, fill=level, group=name), alpha=0.3)+geom_text(data=newdf, aes(label=name, color=level), hjust=-0.2, vjust=0.5, size=3, show.legend=F)+coord_cartesian(xlim=c(0,max(cidf$number)*1.2))+xlab(~"Con (\×"~C[max]*")")+ylab(~"score ("*mu*"C/"*mu*"F)")+theme_bw()
我已經使用ggplot
、 geom_line
和geom_ribbon
等代碼繪制了 3 個圖。
我想合並p_min
、 p_max
和p_mean
。
p_min
、 p_max
和p_mean
必須位於 y 軸。
x 軸是數字(1,2,3,4,5)。
讓我知道如何在布局中使用復雜變量繪制多個 y 軸的圖。
我首先將每個數據集重命名為 cidf1、cidf2 和 cidf3,這樣它們就不會混合。 newdf 也是一樣。 我添加了一個列type
,它基本上包含它是什么類型的圖形的信息。 我不確定你是否知道 tidyvesre,所以我使用基本的 R 使用 $ 運算符添加一列
#Set 1
cidf1 <- read.csv("cidf_min.csv")
cidf1$type ="P_min"
newdf1<-read.csv("newdf_min.csv")
newdf1$type ="P_min"
#Set 2
cidf2<-read.csv("cidf_max.csv")
cidf2$type ="P_max"
newdf2<-read.csv("newdf_max.csv")
newdf2$type ="P_max"
#Set 3
cidf3<-read.csv("cidf_mean.csv")
cidf3$type ="P_mean"
newdf3<-read.csv("newdf_mean.csv")
newdf3$type ="P_mean"
然后我將它們組合在一起:
cidf = rbind(cidf1,cidf2,cidf3)
newdf =rbind(newdf1,newdf2,newdf3)
並繪制它們,設置color=type
以根據數據集為每條線着色。 我刪除了您在 ggplot 中的其他內容,因為它們與您提出的問題無關。
ggplot(cidf, aes(x=X, y=value))+geom_line(aes(color=type)) +
geom_ribbon(aes(ymin=lower, ymax=upper, fill=type), alpha=0.3) +
xlab(~"Con (\u00D7"~C[max]*")")+ylab(~"score ("*mu*"C/"*mu*"F)")+theme_bw()
所以它非常接近你正在尋找的東西。 如果我誤解了你想要做什么,請告訴我,我會更新我的代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.