Datalink: les données utilisées
Mon code:
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'))
Mon résultat:
Nouveau résultat avec aes (taille = 2):
Ma question: y a-t-il un moyen de contrôler plus précisément la largeur de la ligne pour éviter le résultat dans le deuxième tracé? Je trouve particulièrement qu'il n'est pas convivial pour les documents, et plus encore à des fins de publication, d'inclure le tracé avec la largeur de ligne nouvellement définie.
mieux, ismail
Réponses:
Bien que @Didzis ait la bonne réponse , je vais développer quelques points
L'esthétique peut être définie ou mappée dans un appel ggplot.
Une esthétique définie dans aes (...) est mappée à partir des données et une légende créée.
Une esthétique peut également être définie sur une valeur unique, en la définissant en dehors de aes ().
Pour autant que je sache, ce que vous voulez, c'est définir la taille sur une valeur unique, et non mapper dans l'appel à
aes()
Lorsque vous l'appelez,
aes(size = 2)
il crée une variable appelée`2`
et l'utilise pour créer la taille, en la mappant à partir d'une valeur constante telle qu'elle est dans un appel àaes
(elle apparaît donc dans votre légende).En utilisant size = 1 (et sans
reg_labeller
lequel est peut-être défini quelque part dans votre script)et avec taille = 2
Vous pouvez maintenant définir la taille pour qu'elle fonctionne correctement avec la taille d'image finale et le type d'appareil.
la source
La largeur de ligne dans
ggplot2
peut être modifiée avec l'argumentsize=
dansgeom_line()
.la source
aes
. Voir ma réponse (ou leggplot2
livre pour une explication.size=1
, peut-être0.5
, donc l'utilisationsize=1
donne de très bons résultats à mon avis. On peut également utiliser des nombres décimaux pour affiner la largeur (par exemplesize=1.2
).La largeur de ligne dans
ggplot2
peut être modifiée avec l'argumentlwd=
dansgeom_line()
.la source
Si vous souhaitez modifier la largeur de la ligne de manière flexible, vous pouvez utiliser "scale_size_manual", c'est la même procédure pour choisir la couleur, le remplissage, l'alpha, etc.
la source
Il semble également que si vous mettez simplement l'
size
argument dans lageom_line()
partie, mais sans le,aes()
il sera mis à l'échelle de manière appropriée. Au moins ça marche de cette façon avecgeom_density
et j'ai eu le même problème.la source