在函数中使用可选参数(...),如新的人口金字塔图所示

时间:2014-12-24 20:32:16

标签: r plot arguments

为了逐级展示调查参与者的分布情况,我找到了最近发布的pyramid软件包并尝试了它。由于x轴上的字体太大而且似乎没有其他格式选择来修复它,我意识到我不知道如何添加"其他选项"如金字塔中的......所允许的那样。

install.packages("pyramid")
library(pyramid)
level.pyr <- data.frame(left = c(1, 4, 6, 4, 41, 17),
                        right = c(1, 4, 6, 4, 41, 17),
                        level = c("Mgr", "Sr. Mgr.", "Dir.", "Sr. Dir.", "VP", "SVP+"))
pyramid(level.pyr, Laxis = seq(2,50,6), Cstep = 1, Cgap = .5, Llab = "", Rlab = "", Clab = "Title", GL = T, Lcol = "deepskyblue", Rcol = "deepskyblue", Ldens = -1, main = "Distribution of Participants in Survey")

同意,下面的情节看起来很奇怪,因为左侧和右侧是相同的,而不是男性和女性。但我的问题仍然是如何调用选项并执行类似&#34; Laxis.size = 2&#34; &#34; Raxis.font =&#34;粗体&#34;。

enter image description here

这个用于创建金字塔图的新包的替代方案包括plotrix,grid和base R,如下所示: population pyramid density plot in r 顺便说一句,如果有一个ggplot方法,我会欢迎尝试。

1 个答案:

答案 0 :(得分:3)

与Roland和现在nrussell的猜测(显然没有看到代码)相反,在评论中表示,点参数将传递给pyramid的轴绘图例程,尽管如此是一个基本的图形功能。参数甚至没有传递给axis电话,尽管这似乎是合理的。通过调用text()构建x轴刻度标签。你可以破解文本调用来接受你选择的命名参数,它将通过点机制传递。您似乎对其他选项持开放态度,我建议使用plotrix::pyramid.plot,因为Jim Lemon可以更好地记录他的例程,而且他们更可能会使用标准的R绘图惯例:

library(plotrix)
pyramid.plot(lx,rx,labels=NA,top.labels=c("Male","Age","Female"),
  main="",laxlab=NULL,raxlab=NULL,unit="%",lxcol,rxcol,gap=1,space=0.2,
  ppmar=c(4,2,4,2),labelcex=1,add=FALSE,xlim,show.values=FALSE,ndig=1,
  do.first=NULL)


with( level.pyr, pyramid.plot(lx=left, rx=right, labels=level, 
        gap =5, top.labels=c("", "Title", ""), labelcex=0.6))

enter image description here