此答案不符合所有問題要求,但由於有關數據應該如何呈現的細節有點模糊,因此無論如何我都會發帖。
因此,這裏是添加NA的方式計算傳說本身:
library(datasets)
mycars <- mtcars
mycars$disp[c(1,2,3)] <- NA
lvls = levels(as.factor(mycars$cyl))
nacounts <- by(mycars, mycars$cyl, function(x) sum(is.na(x$disp)))
labels = paste(lvls," (NA=",as.integer(nacounts),")",sep="")
ggplot(data=mycars) +
geom_boxplot(aes(x=cyl,y=disp, fill=as.factor(cyl))) +
scale_fill_discrete(name="Cyl", labels=labels)
編輯
有關問題所指,到stat_summary圖:標籤描述線類型可以使用scale_linetype_ *函數添加。
如果你想擁有同樣的傳說爲上面的圖片中,我認爲你必須添加圖形元素描述缸,如:
ggplot(mycars,aes(cyl,disp)) +
stat_summary(fun.y=mean, geom="line", lwd=1.5) +
stat_summary(aes(lty=factor(vs)),fun.y="mean",geom="line") +
stat_summary(aes(color=factor(cyl)),fun.y="mean",geom="point",size=5) +
scale_x_continuous(breaks=c(4,6,8),labels=c("four","6","8")) +
scale_color_discrete(labels=labels)
是的,有是一個複雜的方式。但請注意,'ggplot2'是一個可視化工具。用ggplot2做所有事情並不是一個好主意。如果你想要一個表格,你可以用'knitr :: kable()','table()','tables :: tabular()'等來創建表格。 – kohske 2014-10-20 06:59:09
如果你可以使用表格情節區,那麼這個Q是一個愚蠢的http://stackoverflow.com/questions/12318120/adding-table-within-the-plotting-region-of-a-ggplot-in-r#12318578 - 只是使帶有'table(is.na(foo $ X,foo $ Y))'或類似的表。 'annotation_custom'會被剪裁到繪圖區域,所以直到我們找到一種方法給註釋區域添加註釋.... – Spacedman 2014-10-20 07:07:00
糟糕。表結構應該是'table(is.na(foo $ X),foo $ Y)'來得到一個2d表。 – Spacedman 2014-10-20 07:14:46