Saya mencoba mengubah ukuran plot agar sesuai dengan dokumen saya, tetapi saya mengalami kesulitan membuat diagram plot menjadi persegi.
Contoh:
pdf(file = "./out.pdf", width = 5, height = 5)
p <- ggplot(mydata, aes(x = col1, y = col2))
print(p)
aux <- dev.off()
Meskipun batasan untuk x dan y sama, plot pada hasilnya bukanlah persegi. Saya rasa R membuat panel penutup 5x5 "tetapi tidak peduli dengan ukuran diagram sebenarnya.
Bagaimana saya bisa membatalkan diagram saya?
hjust
posisi judul - cobaopts(axis.title.y=theme_text(hjust=10))
. Tapi sayangnya, sepertinya tidak. Lihat groups.google.com/group/ggplot2/browse_thread/thread/… untuk diskusi milis ggplot dan jawaban @ Baptiste.y=runif(100, 0, 50)
maka aspek plot tidak lagi persegi.coord_fixed()
menyebabkan skala setiap sumbu menjadi sama hanya yang terlihat?Untuk memastikan rasio aspek tertentu, misalnya untuk persegi, gunakan
theme(aspect.ratio=1)
.Jawaban Andrie tidak memberikan gambaran yang lengkap, karena pada contoh tersebut terdapat data yang mungkin tidak wajar dimana range x sama dengan range y. Namun jika datanya:
df <- data.frame( x = runif(100, 0, 50), y = runif(100, 0, 5)) ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
maka plotnya akan terlihat seperti ini:
Fungsi coord_fixed () juga memiliki argumen untuk menyesuaikan rasio sumbu:
Sehingga plot bisa dibuat persegi dengan:
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed(ratio=10)
Tetapi Anda perlu menyesuaikan ini dengan batas variabel atau area plot (tidak semua batas dapat dibagi dengan baik dengan bilangan bulat seperti contoh ini).
sumber
Demi kelengkapan: Jika Anda ingin mempertimbangkan batas sumbu yang sangat berbeda:
df <- data.frame( x = runif(100, 0, 5000), y = runif(100, 0, 5)) ratio.display <- 4/3 ratio.values <- (max(df$x)-min(df$x))/(max(df$y)-min(df$y)) plot <- ggplot(df, aes(x=x, y=y)) + geom_point() plot + coord_fixed(ratio.values / ratio.display)
Yang menghasilkan:
sumber
plot + theme(aspect.ratio=4/3)
? Ggplot mungkin memiliki beberapa lapisan, dengan beberapa kumpulan data, dan sumbu mungkin memiliki faktor perluasan yang berubah-ubah, jadi menghitung rasio y / x dari satu sumber data tampaknya cukup rapuh.