2017-07-12 66 views
-1

我使用ggplot製作了一個帶有兩個變量的類似圖,但我需要添加一個輔助y軸並將其分配給其中一個變量(「volt 「)。添加輔助軸ggplot - 具有兩個變量的線形圖 - 一個數據幀

我也想指定次y軸的範圍(上限和下限),以及中斷 - 就像我爲y主軸做的那樣。

我的兩個變量是「Sr」和「伏」。

我不想使用不同的數據框,然後合併圖形。

你們有沒有人知道該怎麼做? 哦,我必須補充說我是一個絕對的初學者!

感謝, 佩德羅

ggplot(data = k, aes(x = Dist)) + 
geom_line(aes(y = Sr), colour="blue") + 
geom_line(aes(y = volt), colour = "grey") + 
xlab(bquote('Distance-um')) + 
ylab(bquote('Sr87Sr86')) + 
geom_point(aes(y = Sr), colour="black", size=2) + 
geom_point(aes(y = volt), colour="grey", size=2) + 
theme(axis.title.x = element_text(colour="black",size=10,face="bold"), 
    axis.title.y = element_text(colour="black",size=10,face="bold"), 
    axis.text.x = element_text(colour="black",size=8, face="plain"), 
    axis.text.y = element_text(colour="black",size=8, face="plain")) + 
theme(panel.background = element_rect(fill = "white")) + 
theme(panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    strip.background = element_blank(), 
    panel.border = element_rect(colour = "black", fill="transparent")) + 
theme(plot.title = element_text(lineheight=.8, size=10, face="bold")) + 
geom_hline(aes(yintercept=0.7061), colour="black", linetype="dotted") + 
geom_hline(aes(yintercept=0.7078), colour="black", linetype="dotted") + 
geom_hline(aes(yintercept=0.70467), colour="black", linetype="dotted") + 
scale_x_continuous(limits=c(-0.01, 1000), breaks=c(0, 250, 500, 750, 1000))+ 
scale_y_continuous(limits=c(0.7039, 0.7101), breaks=c(0.7040, 0.7050, 
0.7060, 0.7070, 0.7080, 0.7090)) + 
theme(plot.margin = unit(c(.25,.25,.0,.0), "cm")) 
+1

[ggplot2:爲一個變量在右側創建第二個y軸]可能的副本(https://stackoverflow.com/questions/44911768/ggplot2-create-第二個Y軸在右側爲一個變量) –

+0

對不起,但我無法弄清楚以前的問題和答案可以用來回答我的問題。 –

+0

任何數據來重現您的情節?請使用'dput()'來複制你的數據。 [如何使一個偉大的R可重現的例子?](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) –

回答

0

首先,我想提一提,two axis is not the best idea。儘管如此,如果您仍然需要兩個軸,您必須縮放其中一個變量(在這種情況下爲volt)。現在

Dist<-seq(1,10) 
Sr<-c(0.704, 0.705, 0.706, 0.707, 0.708, 0.704, 0.705, 0.706, 0.707, 0.708) 
volt<-c(3,5,10,8,12,4,11,3,14,22) 
k<-data.frame(Dist,Sr,volt) 
k$volt<-k$volt/10 

,固定數據使事情密謀簡單,只要你melt變量

library(reshape) 

k_melt<-melt(k,id="Dist") 

和繪圖。隨着sec_axis您可以創建第二個軸,並再次重新調整值

ggplot(k_melt, aes(x=Dist, y=value, fill=variable, colour=variable))+ 
geom_line(stat='identity', size=0.5)+ 
geom_point(stat='identity', size=2)+scale_color_manual(values=c("blue", "grey")) + 
scale_y_continuous("SR", sec.axis = sec_axis(~ . *10, name = "Volt"))` 

注意:您可以將您themegeom_hline添加到該代碼。它們不適用於我創建的模擬數據

相關問題