Поворот по оси X в R для штриховки
Я пытаюсь заставить метки оси 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)
Ответы
Ответ 1
ОТДЕЛЬНЫЙ ОТВЕТ НА ДАВИДНЫЙ ОТВЕТ:
Вот какой-то хакерский путь. Я предполагаю, что есть более простой способ. Но вы можете подавить ярлыки на панели и текст надписи на этикетках, сохраняя позиции бара от barplot
и немного подстраиваясь вверх и вниз. Вот пример с набором данных mtcars:
x <- barplot(table(mtcars$cyl), xaxt="n")
labs <- paste(names(table(mtcars$cyl)), "cylinders")
text(cex=1, x=x-.25, y=-1.25, labs, xpd=TRUE, srt=45)
Ответ 2
используйте необязательный параметр las = 2.
barplot(mytable,main="Car makes",ylab="Freqency",xlab="make",las=2)
![enter image description here]()
Ответ 3
Если вы хотите повернуть метки оси x с углом, равным или меньшим 90, попробуйте выполнить следующий подход:
Он использует аргумент barplot space=1
, чтобы ширина столбцов была равна интервалу интервалов столбцов.
Таким образом, было возможно адаптировать код, представленный в часто задаваемых частотах, который был определен @BenBarnes под ответом Тайлера Ринкера.
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" (source: http://stackoverflow.com/questions/1296646/how-to-sort-a-dataframe-by-columns-in-r)
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)
![enter image description here]()
Ответ 4
Вы можете использовать
par(las=2) # make label text perpendicular to axis
Здесь написано: http://www.statmethods.net/graphs/bar.html
Ответ 5
Ответ Андре Силвы отлично работает для меня, с одной оговоркой в строке "barplot":
barplot(mtcars$qsec, col="grey50",
main="",
ylab="mtcars - qsec", ylim=c(0,5+max(mtcars$qsec)),
xlab = "",
xaxt = "n",
space=1)
Обратите внимание на аргумент "xaxt". Без него ярлыки рисуются дважды, первый раз без поворота на 60 градусов.