R中直方图轴的千位分隔符

4
我希望在我的直方图中以千位分隔格式显示x轴数字。例如,
y <- seq(10000, 100000, 10000) 
hist(y)

在这个图表中,我希望在x轴上看到10,000、20,000等。有没有简单的方法可以实现呢?

2个回答

12

绘制没有x轴的直方图,然后使用axis手动添加x轴:

y <- seq(10000, 100000, 10000) 
hist(y, xaxt="n")
axis(side=1, at=axTicks(1), 
     labels=formatC(axTicks(1), format="d", big.mark=','))

axTicks 计算刻度标记的位置,formatC 格式化数字。这是结果:

Hisogram


3

scales库有一个名为comma的函数,可以按照你想要的格式对数字进行格式化:

library(scales)

虽然不完全符合你的要求,但是这是个好的开始:

q<-quantile(y,prob=seq(0,1,.1));hist(y,breaks=q,labels=comma(q))

更好的版本,使用lattice
q<-quantile(y,prob=seq(0,1,.1));histogram(~y,breaks=q,scales=list(at=q,labels=comma(q)))

当我写下这段代码时,出现了以下错误:Error in plot.histogram(r, freq = freq1, col = col, border = border, angle = angle, : 找不到函数 "comma"。 - Baykal
@amobishoproden 抱歉,我以为已经包含了 library(scales) 部分。 - Ari B. Friedman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接