3

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

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

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

请问你能帮帮我吗 ?

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

PS我正在尝试使用图例功能,但出现此错误:

strwidth 中的错误(图例,单位 =“用户”,cex = cex):尚未调用 plot.new

4

1 回答 1

3

我猜你一直在阅读教你使用的介绍材料attach。试着忘记这一点。如果你想使用格子,这是一个坏习惯。(以及编写代码的普遍坏习惯。)假设您在数据框中有这两个变量,dfrm格式为长格式,然后试试这个:

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

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

我用数据集测试了上述的一个变体,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)))
于 2011-03-25T22:27:48.157 回答