Saya punya plot di mana sumbu x adalah faktor yang labelnya panjang. Walaupun mungkin bukan visualisasi yang ideal, untuk saat ini saya hanya ingin memutar label ini menjadi vertikal. Saya telah menemukan bagian ini dengan kode di bawah ini, tetapi seperti yang Anda lihat, labelnya tidak sepenuhnya terlihat.
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
q + theme(axis.text.x=element_text(angle = -90, hjust = 0))
theme(axis.text.x=element_text(angle = 90, vjust = 0.5))
. Pada ggplot2 0.9.3.1 ini tampaknya menjadi solusi.q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
ADALAH YANG BEKERJA SAAT INI.theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
memberikan hasil yang baikUntuk membuat teks pada label centang terlihat dan dibaca dengan arah yang sama dengan label sumbu y, ubah baris terakhir menjadi
sumber
Menggunakan
coord_flip()
Dalam Bab 3.9 dari R untuk Ilmu Data , Wickham dan Grolemund berbicara dengan pertanyaan yang tepat ini:
sumber
Saya ingin memberikan solusi alternatif, solusi kuat mirip dengan apa yang akan saya usulkan diperlukan dalam versi terbaru ggtern , karena memperkenalkan fitur rotasi kanvas.
Pada dasarnya, Anda perlu menentukan posisi relatif menggunakan trigonometri, dengan membangun fungsi yang mengembalikan
element_text
objek, sudut yang diberikan (yaitu derajat) dan posisi (yaitu salah satu informasi x, y, atas atau kanan).Terus terang, menurut pendapat saya, saya berpikir bahwa opsi 'otomatis' harus dibuat tersedia
ggplot2
untukhjust
danvjust
argumen, ketika menentukan sudutnya, bagaimanapun, mari kita menunjukkan cara kerja di atas.Yang menghasilkan sebagai berikut:
sumber
rads = (-angle - positions[[ position ]])*pi/180
penempatan yang dihasilkan lebih baik. Perhatikan tanda minus tambahan sebelum sudut. Terima kasih atas kodenya :)The ggpubr paket penawaran shortcut yang melakukan hal yang benar secara default (Teks rata kanan, kotak Teks rata tengah untuk mencentang):
Dibuat pada 2018-11-06 oleh paket reprex (v0.2.1)
Ditemukan dengan penelusuran GitHub untuk nama-nama argumen yang relevan: https://github.com/search?l=R&q=element_text+angle+90+vjust+org%3Acran&type=Code
sumber
Atau,
ggplot 3.3.0
sediakanguide_axis(n.dodge = 2)
(sebagaiguide
argumenscale_..
ataux
argumen untukguides
) untuk mengatasi masalah over-plot dengan menghindari label secara vertikal. Ini berfungsi dengan baik dalam hal ini:sumber
Untuk mendapatkan label centang x yang dapat dibaca tanpa dependensi tambahan, Anda ingin menggunakan:
Ini memutar label centang 90 ° berlawanan arah jarum jam dan meluruskannya secara vertikal di ujungnya (
hjust = 1
) dan pusatnya secara horizontal dengan tanda centang yang sesuai (vjust = 0.5
).Contoh lengkap:
Catatan, bahwa vertikal / parameter pembenaran horisontal
vjust
/hjust
darielement_text
relatif ke teks. Karena itu,vjust
bertanggung jawab atas perataan horizontal .Tanpa
vjust = 0.5
itu akan terlihat seperti ini:Tanpa
hjust = 1
itu akan terlihat seperti ini:Jika karena alasan tertentu (kabel) Anda ingin memutar centang label 90 ° searah jarum jam (sehingga mereka dapat dibaca dari kiri) Anda akan perlu untuk menggunakan:
q + theme(axis.text.x = element_text(angle = -90, vjust = 0.5, hjust = -1))
.Semua ini sudah dibahas dalam komentar dari jawaban ini tetapi saya sering kembali ke pertanyaan ini, sehingga saya ingin jawaban yang dapat saya salin tanpa membaca komentar.
sumber
Alternatif untuk
coord_flip()
menggunakanggstance
paket. Keuntungannya adalah membuatnya lebih mudah untuk menggabungkan grafik dengan jenis grafik lainnya dan Anda dapat, mungkin lebih penting, mengatur rasio skala tetap untuk sistem koordinat Anda .Dibuat pada 2020-03-11 oleh paket reprex (v0.3.0)
sumber