数据链路:the data used
我的代码:
ccfsisims <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_ConsIndex.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
ccfsirsts <- as.data.frame(ccfsisims)
ccfsirsts[6:24] <- sapply(ccfsirsts[6:24],as.numeric)
ccfsirsts <- droplevels(ccfsirsts)
ccfsirsts <- transform(ccfsirsts,sres=factor(sres,levels=unique(sres)))
library(ggplot2)
#------------------------------------------------------------------------------------------
#### Plot of food security index for Morocco and Turkey by sector
#------------------------------------------------------------------------------------------
#_Code_Begin...
datamortur <- melt(ccfsirsts[ccfsirsts$region %in% c("TUR","MAR"), ]) # Selecting regions of interest
datamortur1 <- datamortur[datamortur$variable %in% c("pFSI2"), ] # Selecting the food security index of interest
datamortur2 <- datamortur1[datamortur1$sector %in% c("wht","gro","VegtFrut","osd","OthCrop","VegtOil","XPrFood"), ] # Selecting food sectors of interest
datamortur3 <- subset(datamortur2, tradlib !="BASEDATA") # Eliminating the "BASEDATA" scenario results
allfsi.f <- datamortur3
fsi.wht <- allfsi.f[allfsi.f$sector %in% c("wht"), ]
Figure29 <- ggplot(data=fsi.wht, aes(x=factor(sres),y=value,colour=factor(tradlib)))
Figure29 + geom_line(aes(group=factor(tradlib),size=2)) + facet_grid(regionsFull~., scales="free_y", labeller=reg_labeller) + scale_colour_brewer(type = "div") +
theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 13, hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) +
ylab("FSI (%Change)") + theme(axis.text.y = element_text(colour = 'black', size = 12), axis.title.y = element_text(size = 12, hjust = 0.5, vjust = 0.2)) +
theme(strip.text.y = element_text(size = 11, hjust = 0.5, vjust = 0.5, face = 'bold'))
我的结果:
AES的新结果(大小= 2):
我的问题:有没有更精确地控制线宽以避免在第二个图中出现这种结果的方法?我特别发现它对文档不友好,而且为了发布目的而包括具有新定义的线宽的图更是如此。
最好的伊斯梅尔
6条答案
按热度按时间dauxcl2d1#
虽然@Didzis拥有correct answer,但我将详细说明几点
美学可以在ggplot调用中设置或Map。
据我所知,您需要的是将size set 为单个值,而不是在
aes()
调用中 *map调用
aes(size = 2)
时,它会创建一个名为2
的变量,并使用该变量创建大小,将其从一个常量值Map到aes
调用中的值(因此它会出现在图例中)。使用size = 1(不使用
reg_labeller
,reg_labeller
可能在脚本中的某个位置定义)并且大小= 2
现在,您可以定义大小,以便与最终图像大小和设备类型配合使用。
zte4gxcn2#
ggplot2
中的线宽可通过geom_line()
中的参数size=
进行更改。u7up0aaq3#
ggplot2
中的线宽可通过geom_line()
中的参数lwd=
进行更改。0tdrvxhp4#
看起来如果你只把
size
参数放在geom_line()
部分,而没有aes()
,它会适当地缩放,至少它在geom_density
中是这样工作的,我也遇到了同样的问题。1u4esq0p5#
如果您想灵活地修改线宽,您可以使用“scale_size_manual”,这与选择颜色、填充、alpha等的步骤相同。
wnvonmuf6#
只需在aes()函数 * 外部 * 添加size命令,并添加所需的任何小数值,例如size = 1.5