我试图让x轴标签上没有运气barplot旋转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)
Answer 1:
EDITED ANSWER PER大卫的回应:
这里有一种hackish的方式。 我猜有一个更简单的方法。 但是你可以抑制栏标签和保存来自杆位置标签的情节文本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)
Answer 2:
使用的可选参数拉斯= 2。
barplot(mytable,main="Car makes",ylab="Freqency",xlab="make",las=2)
Answer 3:
如果你想用旋转角度等于或小于90 x轴标签,请尝试以下方法:
它使用barplot的论点space=1
以使列的宽度等于所述列的间隔空间。
通过这种方式,有可能以适应在提供的代码- [R FAQ这是由泰勒林克的回答下@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)
Answer 4:
您可以使用
par(las=2) # make label text perpendicular to axis
这是写在这里: http://www.statmethods.net/graphs/bar.html
Answer 5:
您只需将您的数据帧分为以下功能 :
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)
您可以根据需要更改标签的旋转角度 。
Answer 6:
可以使用GGPLOT2旋转x轴标签添加附加层
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Answer 7:
安德烈·席尔瓦的回答伟大工程,对我来说,与在“barplot”行一点需要注意:
barplot(mtcars$qsec, col="grey50",
main="",
ylab="mtcars - qsec", ylim=c(0,5+max(mtcars$qsec)),
xlab = "",
xaxt = "n",
space=1)
请注意“xaxt”的说法。 没有它,标签被绘制两次,第一次没有60度旋转。
文章来源: Rotating x axis labels in R for barplot