Saya mencoba untuk mendapatkan label sumbu x untuk diputar 45 derajat pada barplot tanpa hasil. Ini adalah kode yang saya miliki di bawah ini:
barplot(((data1[,1] - average)/average) * 100,
srt = 45,
adj = 1,
xpd = TRUE,
names.arg = data1[,2],
col = c("#3CA0D0"),
main = "Best Lift Time to Vertical Drop Ratios of North American Resorts",
ylab = "Normalized Difference",
yaxt = 'n',
cex.names = 0.65,
cex.lab = 0.65)
beside = TRUE
, Anda mungkin ingin menggunakancolMeans(x)
daripada hanyax
jika Anda menginginkan hanya satu label per grup.gunakan parameter opsional las = 2.
barplot(mytable,main="Car makes",ylab="Freqency",xlab="make",las=2)
sumber
Putar label sumbu x dengan sudut sama atau lebih kecil dari 90 derajat menggunakan grafik dasar. Kode diadaptasi dari R FAQ :
par(mar = c(7, 4, 2, 2) + 0.2) #add room for the rotated labels #use mtcars dataset to produce a barplot with qsec colum information mtcars = mtcars[with(mtcars, order(-qsec)), ] #order mtcars data set by column "qsec" end_point = 0.5 + nrow(mtcars) + nrow(mtcars) - 1 #this is the line which does the trick (together with barplot "space = 1" parameter) barplot(mtcars$qsec, col = "grey50", main = "", ylab = "mtcars - qsec", ylim = c(0,5 + max(mtcars$qsec)), xlab = "", space = 1) #rotate 60 degrees (srt = 60) text(seq(1.5, end_point, by = 2), par("usr")[3]-0.25, srt = 60, adj = 1, xpd = TRUE, labels = paste(rownames(mtcars)), cex = 0.65)
sumber
Anda cukup memasukkan bingkai data Anda ke fungsi berikut :
rotate_x <- function(data, column_to_plot, labels_vec, rot_angle) { plt <- barplot(data[[column_to_plot]], col='steelblue', xaxt="n") text(plt, par("usr")[3], labels = labels_vec, srt = rot_angle, adj = c(1.1,1.1), xpd = TRUE, cex=0.6) }
Pemakaian:
rotate_x(mtcars, 'mpg', row.names(mtcars), 45)
Anda dapat mengubah sudut rotasi label sesuai kebutuhan.
sumber
Anda dapat menggunakan
par(las=2) # make label text perpendicular to axis
Tertulis di sini: http://www.statmethods.net/graphs/bar.html
sumber
Anda dapat menggunakan ggplot2 untuk memutar label sumbu x dengan menambahkan lapisan tambahan
theme(axis.text.x = element_text(angle = 90, hjust = 1))
sumber
Jawaban Andre Silva sangat cocok untuk saya, dengan satu peringatan di baris "barplot":
barplot(mtcars$qsec, col="grey50", main="", ylab="mtcars - qsec", ylim=c(0,5+max(mtcars$qsec)), xlab = "", xaxt = "n", space=1)
Perhatikan argumen "xaxt". Tanpa itu, label digambar dua kali, pertama kali tanpa rotasi 60 derajat.
sumber
Dalam dokumentasi Bar Plots kita dapat membaca tentang parameter tambahan (
...
) yang dapat diteruskan ke pemanggilan fungsi:... arguments to be passed to/from other methods. For the default method these can include further arguments (such as axes, asp and main) and graphical parameters (see par) which are passed to plot.window(), title() and axis.
Dalam dokumentasi parameter grafis (dokumentasi
par
) kita dapat melihat:las numeric in {0,1,2,3}; the style of axis labels. 0: always parallel to the axis [default], 1: always horizontal, 2: always perpendicular to the axis, 3: always vertical. Also supported by mtext. Note that string/character rotation via argument srt to par does not affect the axis labels.
Itulah mengapa passing
las=2
adalah jawaban yang tepat.sumber