Datalink: data yang digunakan
Kode saya:
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'))
Hasil saya:
Hasil baru dengan aes (size = 2):
Pertanyaan saya: Apakah ada cara untuk mengontrol lebar garis dengan lebih tepat untuk menghindari hasil di plot kedua? Saya secara khusus menganggapnya tidak bersahabat dengan dokumen, dan lebih dari itu untuk tujuan penerbitan menyertakan plot dengan lebar garis yang baru ditentukan.
terbaik, ismail
Jawaban:
Sementara @Didzis memiliki jawaban yang benar , saya akan memperluas beberapa poin
Estetika dapat diatur atau dipetakan dalam panggilan ggplot.
Estetika yang ditentukan dalam aes (...) dipetakan dari data, dan legenda dibuat.
Sebuah estetika juga dapat ditetapkan ke satu nilai, dengan mendefinisikannya di luar aes ().
Sejauh yang saya tahu, yang Anda inginkan adalah menyetel ukuran ke satu nilai, bukan memetakan dalam panggilan ke
aes()
Saat Anda memanggilnya
aes(size = 2)
, membuat variabel yang dipanggil`2`
dan menggunakannya untuk membuat ukuran, memetakannya dari nilai konstan seperti yang ada dalam panggilan keaes
(sehingga muncul di legenda Anda).Menggunakan size = 1 (dan tanpanya
reg_labeller
mungkin didefinisikan di suatu tempat di skrip Anda)dan dengan size = 2
Sekarang Anda dapat menentukan ukuran agar berfungsi sesuai dengan ukuran gambar akhir dan jenis perangkat.
sumber
Lebar garis dalam
ggplot2
dapat diubah dengan argumensize=
masukgeom_line()
.sumber
aes
. Lihat jawaban saya (atauggplot2
buku untuk penjelasan.size=1
, mungkin0.5
, jadi menggunakansize=1
hasil yang cukup baik menurut saya. Seseorang juga dapat menggunakan angka desimal untuk menyesuaikan lebar (katakanlahsize=1.2
).Lebar garis dalam
ggplot2
dapat diubah dengan argumenlwd=
masukgeom_line()
.sumber
Jika Anda ingin mengubah lebar garis secara fleksibel, Anda dapat menggunakan "scale_size_manual", ini adalah prosedur yang sama untuk memilih warna, isi, alfa, dll.
sumber
Ini juga terlihat seperti jika Anda hanya meletakkan
size
argumen digeom_line()
bagian tetapi tanpa argumenaes()
itu akan menyesuaikan skala dengan tepat. Setidaknya ini bekerja dengan cara inigeom_density
dan saya memiliki masalah yang sama.sumber