我还是ggplot2的新手。我想绘制一个方框图,但我没有原始数据,我有摘要点。
Page_Type ID Count min 5% 25% 50% 75% 95% Max Avg
3 24559 173 408 479.45 615.25 800.5 1547.25 4436.8 7068 1350.138462
3 24560 101 0 480 631 871 1762 5183 65177 2702.245902
6 24559 69 490 664 1181 1807 3221 4845.5 6397 2287.45098
6 24560 10 1086 1254.4 1928 1970 2007 5236.6 6044 2607
46 24559 49 217 252.45 438.75 595 1198 2647.15 4316 939.6666667
46 24560 31 266 337 467 640 1123 2531.6 5232 989.2758621
69 24559 424 644 761.8 957 1292 2212 4938.6 11246 1881.785467
69 24560 216 601 848.85 1060.25 1488.5 2465 5314.7 7981 2094.007692
82 24559 62 922 1018.2 1305 1534 1966 3313.8 22461 2325.810811
82 24560 137 630 926.6 1156 1468 2281 3764.6 11364 1922.252632
输出输出如下:
structure(list(Page_Type = c(3L, 3L, 6L, 6L, 46L, 46L, 69L, 69L,
82L, 82L), ID = c(24559L, 24560L, 24559L, 24560L, 24559L, 24560L,
24559L, 24560L, 24559L, 24560L), Count = c(173L, 101L, 69L, 10L,
49L, 31L, 424L, 216L, 62L, 137L), min = c(408L, 0L, 490L, 1086L,
217L, 266L, 644L, 601L, 922L, 630L), X5. = c(479.45, 480, 664,
1254.4, 252.45, 337, 761.8, 848.85, 1018.2, 926.6), X25. = c(615.25,
631, 1181, 1928, 438.75, 467, 957, 1060.25, 1305, 1156), X50. = c(800.5,
871, 1807, 1970, 595, 640, 1292, 1488.5, 1534, 1468), X75. = c(1547.25,
1762, 3221, 2007, 1198, 1123, 2212, 2465, 1966, 2281), X95. = c(4436.8,
5183, 4845.5, 5236.6, 2647.15, 2531.6, 4938.6, 5314.7, 3313.8,
3764.6), Max = c(7068L, 65177L, 6397L, 6044L, 4316L, 5232L, 11246L,
7981L, 22461L, 11364L), Avg = c(1350.138462, 2702.245902, 2287.45098,
2607, 939.6666667, 989.2758621, 1881.785467, 2094.007692, 2325.810811,
1922.252632)), .Names = c("Page_Type", "ID", "Count", "min",
"X5.", "X25.", "X50.", "X75.", "X95.", "Max", "Avg"), class = "data.frame", row.names = c(NA,
-10L))
有5种页面类型,每种页面类型有2个ID。我想以箱形图的形式显示各种汇总指标(分钟,5%,25%......)。我可以通过滑动5%和95%的数据点来适应更传统的外观。如何根据此数据创建箱形图?
还有一个计数列,显示用于获取摘要的点数。如果这可以叠加在相同的情节上,那么它也可以是不同的情节。
答案 0 :(得分:7)
您可以通过提供自己的最小值,最大值,中间值,上限和下限来制作包含geom_boxplot()
的箱线图,只有在这种情况下,您才应在stat="identity"
内添加geom_boxplot()
。
ggplot(df,aes(x=as.factor(Page_Type),
ymin=min,lower=X5.,middle=X50.,upper=X75.,ymax=Max,fill=as.factor(ID)))+
geom_boxplot(stat="identity")