varias una personalizar modificar los leyenda graficas grafica ggplot etiquetas escala ejes como cambiar r ggplot2 line-plot

una - ¿Cómo cambiar el ancho de línea en ggplot?



personalizar ejes en r (2)

Datalink: los datos utilizados

Mi código:

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''))

Mi resultado:

Nuevo resultado con aes (tamaño = 2):

Mi pregunta: ¿hay alguna manera de controlar el ancho de línea de forma más precisa para evitar el resultado en el segundo gráfico? En particular, considero que es poco amigable con los documentos, y más aún con fines de publicación para incluir la trama con el ancho de línea recientemente definido.

mejor, ismail


El ancho de línea en ggplot2 se puede cambiar con argumento size= en geom_line() .

#sample data df<-data.frame(x=rnorm(100),y=rnorm(100)) ggplot(df,aes(x=x,y=y))+geom_line(size=2)


Mientras @Didzis tiene la respuesta correcta , ampliaré algunos puntos

La estética se puede establecer o mapear dentro de una llamada ggplot.

  • Una estética definida dentro de aes (...) se mapea a partir de los datos y se crea una leyenda.

  • Una estética también se puede establecer en un único valor, definiéndola fuera de aes ().

Por lo que puedo decir, lo que quiero es establecer el tamaño en un solo valor, no el mapa dentro de la llamada a aes()

Cuando llamas aes(size = 2) crea una variable llamada `2` y la usa para crear el tamaño, `2` desde un valor constante como lo está dentro de una llamada a aes (así aparece en tu leyenda).

Usando size = 1 (y sin reg_labeller que tal vez esté definido en algún lugar de tu script)

Figure29 + geom_line(aes(group=factor(tradlib)),size=1) + facet_grid(regionsFull~., scales="free_y") + 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''))

y con tamaño = 2

Figure29 + geom_line(aes(group=factor(tradlib)),size=2) + facet_grid(regionsFull~., scales="free_y") + 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''))

Ahora puede definir el tamaño para que funcione correctamente con el tamaño de la imagen final y el tipo de dispositivo.