ggplot2 中的箱线图产生垃圾

Boxplot in ggplot2 giving garbage

您好,我有以下天气数据数据框:

> head(tab)
  month day hour min tempi hum precip_ratei         pws observationTime
1    03  09   00  01  51.8  80       -99.99 KCASANFR291               1
2    03  09   00  21  52.0  80       -99.99 KCASANFR291               2
3    03  09   00  41  51.8  80       -99.99 KCASANFR291               3
4    03  09   01  02  51.6  80       -99.99 KCASANFR291               4
5    03  09   01  21  51.6  80       -99.99 KCASANFR291               5

> unique(tab$pws)
 [1] "KCASANFR291" "KCASANFR58"  "KCASANFR328" "KCASANFR49"  "KCASANFR131" "KCASANFR371" "KCASANFR142" "KCASANFR384"
 [9] "KCASANFR326" "KCASANFR231" "KCASANFR335" "KCASANFR259" "KCASANFR366" "KCASANFR367" "KCASANFR354" "KCASANFR394"
[17] "KCASANFR357" "KCASANFR299" "KPCASANF2"   "KCASANFR114" "KCASANFR404" "KCASANFR355" "KCASANFR314" "KCASANFR297"
[25] "KCASANFR343" "KCASANFR327" "KCASANFR317" "KCASANFR236" "KCASANFR79" 

现在我正在尝试使用 ggplot2 boxplot 使用以下代码绘制它,但它给出了下面奇怪的图片。你能说说为什么会这样吗?

library(ggplo2)
p <- ggplot(tab, aes_string(y = "tempi", x ="pws"))
p + geom_boxplot()

还有,跟轴值有关系吗?

错误是由于 boxplot 函数的数据类型不匹配,正如@Roman Lustrik 所指出的那样。 tempi 应该是数字或整数,'pwi' 应该是因子数据类型。我用正确数据类型的示例数据集尝试了代码,它工作正常。

样本数据集

'data.frame':   5 obs. of  9 variables:
 $ month          : int  3 3 3 3 3
 $ day            : int  9 9 9 9 9
 $ hour           : int  0 0 0 1 1
 $ min            : int  1 21 41 2 21
 $ tempi          : num  51.8 52 51.8 51.6 51.6
 $ hum            : int  80 80 80 80 80
 $ precip_ratei   : num  -100 -100 -100 -100 -100
 $ pws            : Factor w/ 3 levels "KCASANFR291",..: 1 1 2 2 3
 $ observationTime: int  1 2 3 4 5

箱线图