以下R脚本会生成一个太高而不适合绘图的条形图。请注意,条形超出y轴,并且不显示其注释(百分比)。如何生成显示整个高栏及其注释的条形图?
png(filename = "plot.png")
x <- c("A", "B")
y <- c(2e6 + 10, 400)
sum_Y <- sum(y)
midpoints <- barplot(height = y, log = "y")
text(midpoints, y, sprintf("%.2f%%", y / sum_Y * 100), pos = 3)
dev.off()
答案 0 :(得分:5)
png(filename = "plot.png")
x <- c("A", "B")
y <- c(2e6 + 10, 400)
sum_Y <- sum(y)
midpoints <- barplot(height = y, log = "y", ylim=c(5e1,5e6))
text(midpoints, y, sprintf("%.2f%%", y / sum_Y * 100), pos = 3)
dev.off()
对于它的日志尺度的限制,R是相当挑剔的。
答案 1 :(得分:1)
您可以在ggplot2
中执行此操作:
library(ggplot2)
qplot(x,y,geom="bar",log="y") + geom_text(aes(y=y*1.5, label=sprintf("%.2f%%", y / sum_Y * 100)))
答案 2 :(得分:1)
另一个选项(基于@Dwin ylab
调整)是使用plotrix
包。如果您想使用对数比例标签进行更多操作,请查看height.at
中的height.lab
和barp
选项:
require(plotrix)
png(filename = "plot.png")
x <- c("A", "B")
y <- c(2e6 + 10, 400)
sum_Y <- sum(y)
midpoints <- barp(height = y, ylog = T, ylim=c(1,5e6))
text(y, sprintf("%.2f%%", y / sum_Y * 100), pos = 3)
dev.off()