基本上,我想确保x轴上的所有标签都不重叠,并且图形边距足以看到垂直标签。
par(mar=c(180, 70, 2, 2.1))
oldfont <- par(font=3)
table(new$Tag)
barplot(table(new$Tag),x,las=2,cex.lab=100)
请在此处找到酒吧情节图片!
答案 0 :(得分:1)
您是否正在寻找的不仅仅是改变边距,文字大小等等? 通过删除单个计数和截断名称可以提高可读性。
set.seed(1)
words <- sapply(
sample(3:25, 50, replace=TRUE),
function(x) {
paste(sample(c(letters), x, replace=TRUE), collapse="")
}
)
strtrunc <- function(x, l, r="…") {
trunc <- nchar(x) > l
x[trunc] <- paste0(strtrim(x[trunc], l), r)
x
}
samp <- sample(1:50, 500, replace=TRUE)
samp.t <- round(1.2^table(samp))
samp.t[sample(1:50, 20)] <- 1
names(samp.t) <- words
dev.new(width=10, height=5)
par(mar=c(10, 4, 3, 0.5), mgp=c(0, 0.8, -0.5), cex=0.9)
b <- barplot(samp.t, xaxt="n", space=0.5, col=1)
axis(1, at=b, labels=names(samp.t), las=2, tick=FALSE, cex.axis=0.8)
mtext("All counts", line=1, cex=1.5)
#barplot with logarithmic y-axis, truncated names and no single-counts
samp.ts <- samp.t[samp.t != 1]
names(samp.ts) <- strtrunc(names(samp.ts), 15)
dev.new(width=10, height=5)
par(mar=c(10, 4, 3, 0.5), mgp=c(0, 0.8, -0.5), cex=0.9)
b <- barplot(samp.ts, xaxt="n", space=0.5, col=1, log="y")
axis(1, at=b, labels=names(samp.ts), las=2, tick=FALSE, cex.axis=1.2)
mtext("Counts > 1", line=1, cex=1.5)
超过20个左右命名类别的条形图通常不能很好地工作,您可能最好找到一种可视化数据的不同方法。如果对数据有意义,可以选择直方图或密度图。否则,将条形图划分为较小的部分,可能是合理的团体,可能是另一个。