我无法旋转并将x轴标签放在R中的脊柱图上。我正在绘制的数据集有多个级别的类别和更长的名称
复制数据集:
psdat <- data.frame(Cat = rep(paste0('LongcategoryName',1:5),(1:5)*5), Level= rep(c('Low', 'Med' , 'High'), 25))
我正在追踪一个脊柱画......
spineplot(Level~ Cat, data=psdat)
但标签太宽了,所以我想旋转它们....
这似乎工作正常,但我必须注意并猜测等级的水平,并且似乎无法以与barplot相同的方式获得它们。
spineplot(Level~ Cat, xaxlabels=F, data=psdat, xlab='')
at <- c(0.04, 0.15, 0.3, 0.6,0.9)
axis(1, at=at, labels=levels(psdat$Cat), las=2)
任何人都可以帮助我们获取at值吗? 谢谢!
答案 0 :(得分:3)
在创建绘图之前只需使用par(las = 2)
:
psdat <- data.frame(Cat = rep(paste0('LongcategoryName', 1:5),(1:5) * 5),
Level = rep(c('Low', 'Med' , 'High'), 25))
par(las = 2, cex.axis = 0.75, mar = c(7, 4.1, 4.1, 2.1))
spineplot(Level ~ Cat, data = psdat, xaxlabels = levels(psdat$Cat), xlab = '')
您还可以在标签内使用换行符(\n
)。例如,如果您的类别名称包含空格,则只需将其替换为\n
:
psdat <- data.frame(Cat = rep(paste0('Longcategory Name', 1:5), (1:5) * 5),
Level = rep(c('Low', 'Med' , 'High'), 25))
par(las = 2, cex.axis = 0.75, mar = c(7, 4.1, 4.1, 2.1))
spineplot(Level ~ Cat, data = psdat, xlab = '',
xaxlabels = gsub(levels(psdat$Cat), pattern = ' ', replacement = '\n'))