在直方图中添加图例(点阵)

时间:2011-03-25 17:05:43

标签: r histogram legend lattice

我是R编程的新手,我想制作关于性和相应工作的直方图。

我遇到的问题是我无法在图表中添加图例。

另外,我想在每个栏的顶部添加频率编号。

你能帮我吗?

library(lattice)
histogram(~ job | sex, col=rainbow(7), main="", xlab = "", ylab="(%)")

P.S。我正在尝试使用图例功能但我收到此错误:

  

strwidth错误(图例,单位=“用户”,cex = cex):     plot.new还没有被调用

1 个答案:

答案 0 :(得分:3)

我猜你一直在阅读介绍材料,教你使用attach。试着忘掉那个。如果你想使用格子,这是一个坏习惯。 (而且编写代码通常都是一种坏习惯。)假设你在数据帧中有这两个变量,dfrm采用长格式,那么试试这个:

library(lattice)
histogram(~ job | sex, data=dfrm, auto.key=TRUE, 
                      col=rainbow(7),  main="", xlab = "", ylab="(%)")

legend函数与格子不能很好地混合,因为它是基本图形。您可以尝试,但放置的坐标系非常不同。

我使用singer数据集测试了上述变体,但没有成功。将此Freq列添加到歌手数据集后,此示例有效:

singer$Freq <- ave(singer$height, singer$voice.part, FUN=length)
barchart(Freq ~ height, groups = voice.part,
        data = singer, 
        stack = TRUE, horizontal=FALSE,
   par.settings=list(superpose.polygon=list(col=rainbow(8))), 
   auto.key=list(x = .6, y = .7, corner = c(0, 0)))