我想创建一个RMT plot其中我想要一个双x轴,但都显示在底部。我发现了一些使用其他R包的例子(例如this lattice example,但我想知道是否有人知道使用ggplot2的方法吗?)双x轴在底部使用ggplot在R
创建类似于我的假数据框,每个数据点由不同百分比的a ,b,C(注A + b + C = 100%,每个点),同时有三种类型的植被点我想颜色不同:
a <- c(10,30,40,20,30,50,20,10,30,20,60,20)
b <- c(20,30,10,40,60,20,30,60,30,10,20,70)
c <- c(70,40,50,40,10,30,50,30,40,70,20,10)
d <- rep(c("tree", "grass", "herbs"),4)
df_trio <- data.frame(a,b,c,d)
有两个X轴创建情节(一个顶部和一个底部),其中第一个x轴的百分比从0-100%变化,第二个为100-0%:
plot_trio <- ggplot(df_trio, aes(a,b)) +
geom_point(aes(colour = factor(d)))+
theme_classic()+
coord_cartesian(xlim = c(0,100), ylim = c(0,100), expand = FALSE)+
scale_x_continuous(breaks = c(0,10,20,30,40,50,60,70,80,90,100),"%a",
sec.axis = sec_axis((~(.-100)*-1), name = "%c",
breaks = c(100,90,80,70,60,50,40,30,20,10,0)))+
scale_y_continuous(breaks = c(0,10,20,30,40,50,60,70,80,90,100))+
ylab("%b")+
geom_abline(slope = -1, intercept = 100)+
annotate("text", label="0% of c",x=55,y=52, size=3)
plot_trio
斜率线显示因子c为0%(如果因子a和b等于0,则为100%,因此在原点)。
我试图用
scale_x_continuous(breaks=c(0,10,20,30,40,50,60,70,80,90,100),"%a",
position="top", sec.axis = sec_axis((~(.-100)*-1), name =
"%c", breaks=c(100,90,80,70,60,50,40,30,20,10,0)))
他们都迫使顶端,但随后他们就切换。有没有人有一个提示,我应该去做什么,或者我应该放弃ggplot,并使用格吗?
保存情节一样'.svg'和移动第二轴使用Photoshop或Inkscape的顶部。 – Jimbou