数据链接:
码:
distevyield <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_DistEVYield.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
str(distevyield)
distevyield <- as.data.frame(distevyield)
distevyield[5:6] <- sapply(distevyield[5:6],as.numeric)
distevyield <- droplevels(distevyield)
distevyield <- transform(distevyield,region=factor(region,levels=unique(region)))
library(ggplot2)
distevyield.f <- melt(subset(distevyield, region !="World"))
Figure3 <- ggplot(data = distevyield.f, aes(factor(variable), value))
Figure3 + geom_boxplot() +
theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 15, hjust = 1, vjust = 0.5),axis.title.x = element_blank()) +
theme(axis.text.y = element_text(colour = 'black', size = 15, hjust = 0.5, vjust = 0.5), axis.title.y = element_blank()) +
theme(strip.text.x = element_text(size = 14, hjust = 0.5, vjust = 0.5, face = 'bold')) +
facet_wrap(~region, scales="free_y")
Run Code Online (Sandbox Code Playgroud)
结果:

题:
我绘制的两个变量,产量(变化百分比)和ev(百万美元)具有不同的单位.有没有办法为其中一个变量添加辅助y轴,以便用一个表示其原始单位的箱线图显示每个变量,但是在同一个图中?这个功能是否存在于ggplot2中?
谢谢!
使用ggplot2,您无法生成两个y轴(请参阅说明/讨论).
要表示不同的轴值ev,yield您必须在单独的图中绘制它们.实现这一目标的一种方法是使用facet_wrap()和组合region和variable值.随着facet_wrap()你会得到两个图放在一起,你将能够控制的列数显示.
ggplot(data = distevyield.f, aes(factor(1), value)) +
geom_boxplot() + facet_wrap(region~variable,scales="free",ncol=8)+
theme(axis.text.x=element_blank(),
axis.title.x=element_blank(),
axis.title.y = element_blank())
Run Code Online (Sandbox Code Playgroud)
