我正在尝试用R创建一个金字塔图。我在互联网上找到了一个代码,它可以满足我的需求。问题是我没有像示例中那样处理小数字。我的情节值为3,000,000到12,000,000,但每边只有10巴。永远不会用更大的数字创建绘图,输出pdf文件的大小约为800mb。
pyramid.plot(x,y,labels=groups,main="Performance",lxcol=mcol,rxcol=fcol,gap=0.5,show.values=TRUE)
为什么表现如此糟糕?不应该自动缩放?
更新
pdf(file='figure1.pdf')
library(plotrix)
x <-c(3105000,3400001,4168780,2842764,3543116,4224601,4222222,6432105,9222222,12345596)
y <-c(3105000,3400001,4168780,2842764,3543116,4224601,4222222,6432105,9222222,12345596)
groups <-c("g1","g2","g3","g4","g5","g6","g7","g8","g9","g11")
pyramid.plot(x,y,labels=groups,main="Performance",gap=0.5,show.values=TRUE)
dev.off()
导出到pdf以及绘图屏幕都需要几分钟。
答案 0 :(得分:2)
在内部,pyramid.plot
正在尝试做一些事情来解决轴中间的差距:如果你做debug(pyramid.plot)
并逐行逐步找到问题所在:
if (is.null(laxlab)) {
laxlab <- seq(xlim[1] - gap, 0, by = -1)
axis(1, at = -xlim[1]:-gap, labels = laxlab)
}
换句话说,pyramid.plot
试图使每1(!)单位的刻度线成为一个轴。
这样的东西可以正常工作:
pyramid.plot(x,y,labels=groups,
main="Performance",gap=5e5,show.values=TRUE,
laxlab=seq(0,1e7,by=1e6),raxlab=seq(0,1e7,by=1e6))
还有一些其他遗迹,pyramid.plot
是为人口统计图设计的......你可以写信给包维护者并让他考虑一下轴的设计概括。