我使用ggplot制作了一个包含两个变量的图形,但是我需要添加一个辅助y轴并将其分配给其中一个变量("伏特")。
我还想指定辅助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"))
答案 0 :(得分: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"))`
注意:您可以将theme
和geom_hline
添加到此代码中。它们不适用于我创建的模拟数据