Datenlink: Die verwendeten Daten
Mein 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'))
Mein Ergebnis:
Neues Ergebnis mit aes (Größe = 2):
Meine Frage: Gibt es eine Möglichkeit, die Linienbreite genauer zu steuern, um das Ergebnis im zweiten Diagramm zu vermeiden? Ich finde es besonders dokumentenunfreundlich und vor allem für Veröffentlichungszwecke, das Diagramm mit der neu definierten Linienbreite einzuschließen.
am besten ismail
Antworten:
Während @Didzis die richtige Antwort hat , werde ich auf einige Punkte eingehen
Die Ästhetik kann innerhalb eines ggplot-Aufrufs festgelegt oder zugeordnet werden.
Aus den Daten wird eine in aes (...) definierte Ästhetik abgebildet und eine Legende erstellt.
Eine Ästhetik kann auch auf einen einzelnen Wert gesetzt werden, indem sie außerhalb von aes () definiert wird.
Soweit ich das beurteilen kann, was Sie wollen, ist Set Größe auf einen einzigen Wert, nicht Karte im Gespräch
aes()
Wenn Sie es aufrufen
aes(size = 2)
, wird eine Variable namens aufgerufen`2`
und diese verwendet, um die Größe zu erstellen. Dabei wird sie von einem konstanten Wert zugeordnet, wie er sich in einem Aufruf von befindetaes
(daher wird er in Ihrer Legende angezeigt).Verwenden von size = 1 (und ohne
reg_labeller
die möglicherweise irgendwo in Ihrem Skript definiert ist)und mit Größe = 2
Sie können jetzt die Größe so definieren, dass sie mit der endgültigen Bildgröße und dem Gerätetyp übereinstimmt.
quelle
Die Linienbreite in
ggplot2
kann mit dem Argumentsize=
in geändert werdengeom_line()
.quelle
aes
. Siehe meine Antwort (oder dasggplot2
Buch für eine Erklärung.size=1
vielleicht0.5
, dahersize=1
liefert die Verwendung meiner Meinung nach recht gute Ergebnisse. Man kann auch Dezimalzahlen verwenden, um die Breite fein einzustellen (sagen wirsize=1.2
).Die Linienbreite in
ggplot2
kann mit dem Argumentlwd=
in geändert werdengeom_line()
.quelle
Wenn Sie die Linienbreite flexibel ändern möchten, können Sie "scale_size_manual" verwenden. Dies ist das gleiche Verfahren zum Auswählen von Farbe, Füllung, Alpha usw.
quelle
Es sieht auch so aus, als ob Sie das
size
Argument nur in dengeom_line()
Teil einfügen, aber ohne das Argumentaes()
wird es entsprechend skaliert. Zumindest funktioniert es sogeom_density
und ich hatte das gleiche Problem.quelle