【发布时间】:2020-04-04 01:46:42
【问题描述】:
更新
如果我从自动键行中删除“points=FALSE”,图例将显示颜色,但不会显示它有一个矩形,而是一个圆/点。
原始问题
我有一个包含图例的堆叠条形图,我想在条形图内添加数字以显示相对值。我似乎可以(图例和价值观)中的任何一个,但不能两者兼而有之。
使用下面的测试代码,我得到一个图表,显示堆叠条形图中的值。
dta <- data.frame(x=c(46.0, 14.7, 16.4, 15.8, 7.0), y=c("Back", "Neck", "Extrem", "MuscSkel", "Oth"))
barchart(data=dta, ~x, group=y,
stack=T,col=sort(brewer.pal(7,"Purples")), xlab="Percent",
box.width=.5, scales=list(tick.number=10),
panel=function(x,y,...){
panel.barchart(x,y,...)
panel.text(cumsum(x)-dta$x/2,y,labels=dta$x)
})
如果我运行这段代码,我会得到一个带有图例的图表。
dta <- data.frame(x=c(46.0, 14.7, 16.4, 15.8, 7.0), y=c("Back", "Neck", "Extrem", "MuscSkel", "Oth"))
barchart(data=dta, ~x, group=y,
stack=T, xlab="Percent",
box.width=.5, scales=list(tick.number=10),
auto.key = list(space="right", cex=.5, border=T, points=F, lines=F, lwd=5, text=c("Back", "Neck", "Extrem", "MuscSkel", "Oth")),
par.settings=list(superpose.polygon=list(col = rainbow(length(c("Back", "Neck", "Extrem", "MuscSkel", "Oth")))),
fill=rainbow(length(c("Back", "Neck", "Extrem", "MuscSkel", "Oth")))))
但是当我组合代码时,它看起来像这样,结果图没有显示图例中的颜色:
dta <- data.frame(x=c(46.0, 14.7, 16.4, 15.8, 7.0), y=c("Back", "Neck", "Extrem", "MuscSkel", "Oth"))
barchart(data=dta, ~x, group=y,
stack=T, xlab="Percent",
box.width=.5, scales=list(tick.number=10),
auto.key = list(space="right", cex=.5, border=T, points=F, lines=F, lwd=5, text=c("Back", "Neck", "Extrem", "MuscSkel", "Oth")),
par.settings=list(superpose.polygon=list(col = rainbow(length(c("Back", "Neck", "Extrem", "MuscSkel", "Oth")))),
fill=rainbow(length(c("Back", "Neck", "Extrem", "MuscSkel", "Oth")))),
panel=function(x,y,...){
panel.barchart(x,y,...)
panel.text(cumsum(x)-dta$x/2,y,labels=dta$x)
})
任何帮助将不胜感激。
【问题讨论】:
标签: r bar-chart legend lattice stacked-chart