Я пытаюсь повернуть метки оси x на 45 градусов на диаграмме без везения. Это код, который у меня ниже:
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
, вы, вероятно, захотите использоватьcolMeans(x)
вместо негоx
только одну метку для каждой группы.используйте необязательный параметр las = 2.
barplot(mytable,main="Car makes",ylab="Freqency",xlab="make",las=2)
источник
Поверните метки оси x на угол, равный или меньший 90 градусов, используя базовую графику. Код адаптирован из 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)
источник
Вы можете просто передать свой фрейм данных в следующую функцию :
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) }
Применение:
rotate_x(mtcars, 'mpg', row.names(mtcars), 45)
При необходимости вы можете изменить угол поворота этикеток.
источник
Вы можете использовать
par(las=2) # make label text perpendicular to axis
Написано здесь: http://www.statmethods.net/graphs/bar.html
источник
Вы можете использовать ggplot2, чтобы повернуть метку оси x, добавив дополнительный слой
theme(axis.text.x = element_text(angle = 90, hjust = 1))
источник
Ответ Андре Сильвы отлично подходит для меня, с одной оговоркой в строке «штриховой график»:
barplot(mtcars$qsec, col="grey50", main="", ylab="mtcars - qsec", ylim=c(0,5+max(mtcars$qsec)), xlab = "", xaxt = "n", space=1)
Обратите внимание на аргумент «xaxt». Без него метки отрисовываются дважды, в первый раз без поворота на 60 градусов.
источник
В документации Bar Plots мы можем прочитать о дополнительных параметрах (
...
), которые могут быть переданы в вызов функции:... 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.
В документации графических параметров (документации
par
) мы видим: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.
Вот почему переход
las=2
- правильный ответ.источник