R 用户定义的重新排序箱线图
我正在绘制此数据的箱线图:R 用户定义的重新排序箱线图,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我正在绘制此数据的箱线图: dput(fit3) structure(list(Grupos = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label =
dput(fit3)
structure(list(Grupos = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("TR", "TR2x45", "UT", "UT2x45"
), class = "factor"), ordenada = c(-11200.4727272736, -5999.3090909097,
-6138.35454545502, -76381.2090909171, 0, -339.309090909113, -2376.61818181839,
-25330.2272727299, -707.681818181909, -1611.90000000011, -3678.90909090945,
-50373.0000000052, 0, 0, -4214.84545454581, -3423.97272727308,
0, 0, -6027.19090909151, -9989.82727272836, -2206.87272727293,
0, -6793.0000000008, -23997.4181818206, -24926.3363636386, -2349.28181818208,
-820.572727272809, -33671.3636363669, -1160.70000000014, 0, -159329.727272744,
-20348.481818184, -424.500000000049, -48302.9909090956, -29205.581818185,
-1018.74545454556, -147929.054545469, -7812.65454545542, -18817.1363636383,
-678.800000000052, 0, -22464.7090909112, -15843.9090909106, -5404.88181818238
), pendiente = c(18.0000000000014, 9.63636363636461, 9.86363636363712,
122.681818181831, 0, 0.54545454545458, 3.81818181818215, 40.6818181818223,
1.13636363636378, 2.59090909090926, 5.90909090909148, 80.9090909090992,
0, 0, 6.77272727272785, 5.50000000000057, 0, 0, 9.68181818181914,
16.0454545454563, 3.54545454545487, 0, 10.9090909090922, 38.5454545454584,
40.0454545454582, 3.77272727272769, 1.31818181818195, 54.0909090909142,
1.86363636363659, 0, 255.909090909118, 32.6818181818216, 0.68181818181826,
77.5909090909165, 46.909090909096, 1.6363636363638, 237.636363636387,
12.5454545454559, 30.2272727272758, 1.09090909090917, 0, 36.0909090909124,
25.4545454545478, 8.68181818181908), r.squared = c(0.919634060520734,
0.954630416312683, 0.845100502512542, 0.951645777648911, NaN,
0.59999999999997, 0.963934426229504, 0.835706833594179, 0.694444444444498,
0.91779661016945, 0.927552140504953, 0.959411828829618, NaN,
NaN, 0.978880070546728, 0.936125319693121, NaN, NaN, 0.980315471045828,
0.962528966476169, 0.856901408450706, NaN, 0.896358543417418,
0.895321098632955, 0.971366890268327, 0.840121951219549, 0.793396226415111,
0.95198720017211, 0.808173076923133, NaN, 0.980407864815474,
0.952010975654702, 0.750000000000039, 0.933728442060346, 0.936844883094985,
0.939130434782635, 0.993784082719898, 0.735431550492406, 0.957943419114485,
0.847058823529391, NaN, 0.951314320205228, 0.974094551779841,
0.957004197271801), adj.r = c(0.910704511689705, 0.949589351458537,
0.827889447236158, 0.946273086276568, NaN, 0.555555555555522,
0.959927140255005, 0.817452037326866, 0.660493827160554, 0.908662900188278,
0.919502378338837, 0.954902032032908, NaN, NaN, 0.976533411718587,
0.929028132992356, NaN, NaN, 0.978128301162031, 0.958365518306855,
0.841001564945229, NaN, 0.884842826019353, 0.883690109592172,
0.968185433631474, 0.822357723577276, 0.770440251572346, 0.946652444635678,
0.786858974359037, NaN, 0.978230960906082, 0.946678861838558,
0.722222222222266, 0.926364935622607, 0.929827647883317, 0.932367149758483,
0.993093425244331, 0.706035056102673, 0.953270465682761, 0.830065359477101,
NaN, 0.945904800228031, 0.971216168644268, 0.952226885857557)), .Names = c("Grupos",
"ordenada", "pendiente", "r.squared", "adj.r"), row.names = c("UT1",
"UT2", "UT3", "UT4", "UT5", "UT6", "UT7", "UT8", "UT9", "UT10",
"TR1", "TR2", "TR3", "TR4", "TR5", "TR6", "TR7", "TR8", "TR9",
"TR10", "UT1.1", "UT2.1", "UT3.1", "UT4.1", "UT5.1", "UT6.1",
"UT7.1", "UT8.1", "UT9.1", "UT10.1", "UT11", "UT12", "TR1.1",
"TR2.1", "TR3.1", "TR4.1", "TR5.1", "TR6.1", "TR7.1", "TR8.1",
"TR9.1", "TR10.1", "TR11", "TR12"), class = "data.frame")
我使用的代码是:
mycolor<-c("red","darkorange","royalblue1","violetred2")
media<-tapply(fit3$pendiente,fit3$Grupos,mean)
boxplot(pendiente ~ Grupos, data = fit3, main="Boxplot pendientes", col = mycolor))
points(media,pch=20,cex=3,col="black")
我很欣赏使用基本图形的答案,但如果lattice或ggplot2解决了这一问题并保持了视觉效果,它们就很好了(我使用基本图形是因为我更了解如何像在图形中那样指定用户定义的颜色)
谢谢大家! 您可以按以下方式处理此问题:
data <- split(fit3$pendiente, fit3$Grupos)
data <- data[c(3,1,4,2)]
boxplot(data, main="Boxplot pendientes", col = c('red', 'orange', 'violet', 'pink'))
然后以标准方式进行。这解决了问题(当然我应该更改颜色顺序,因为我在mycolor向量中按字母顺序指定了它们)。然而,我仍然不明白为什么会发生这种情况…我的原始表是按我想要的顺序排列的,应该禁用默认的字母顺序
data <- split(fit3$pendiente, fit3$Grupos)
data <- data[c(3,1,4,2)]
boxplot(data, main="Boxplot pendientes", col = c('red', 'orange', 'violet', 'pink'))
fit3$Grupos <- factor(as.character(fit3$Grupos), levels=c('UT', 'TR', 'UT2x45', 'TR2x45'))