Я пытаюсь создать многогранную точечную диаграмму в ggplot2, но не могу получить внутренний аспект
категории появляются в том порядке, который я хочу. Код для построения точечной диаграммы:
g <- ggplot(df2, aes(x=Y, y=label)) + geom_point()
g <- g + facet_grid(incentive ~ ., scale="free")
g <- g + geom_errorbarh(aes(xmax = Y + se, xmin = Y - se))
g <- g + geom_vline(xintercept=1/6, linetype=2, colour="red")
g <- g + opts(title="% Subjects Choosing Non-Focal Image",
strip.text.y = theme_text()
) + xlab("%") + ylab("Groups")
print(g)
Проблема с сюжетом заключается в том, что в фасете «Только деньги» категории 1 цент и 5 центов расположены в неправильном порядке. Проблема, похоже, не в порядке самих факторов, а:
> levels(df2$label)
[1] "0" "1" "1 cent" "5 cent" "6"
>
Обновление : упорядочение коэффициента, по-видимому, не меняет порядок построения, т. Е. Построение с меткой 3, где:
df2 $ Метка3
1 0 1 1 цент 5 центов 6
Уровни: 0 <1 <1 цент <5 цент <6 </p>
>str(df2$label3)
Ord.factor w/ 5 levels "0"<"1"<"1 cent"<..: 1 2 3 4 5
Фактический фрейм данных:
df2 <- structure(list(Y = c(0.0869565217391304, 0.148148148148148, 0.172413793103448,
0.384615384615385, 0.5625), group = c(0L, 1L, 5L, 3L, 6L), se = c(0.0856368459098186,
0.079039229753282, 0.0762650540661762, 0.0805448741815074, 0.0726021684593052
), nudged = c(FALSE, TRUE, TRUE, TRUE, TRUE), incentive = structure(c(1L,
2L, 3L, 3L, 4L), .Label = c("Default behavior", "Imbalance only",
"Money only", "Money & Imbalance together"), class = "factor"),
label = structure(1:5, .Label = c("0", "1", "1 cent", "5 cent",
"6"), class = "factor"), plot_order = c(0, 1, 2, 3, 4)), .Names = c("Y",
"group", "se", "nudged", "incentive", "label", "plot_order"),
row.names = c("as.factor(group)0",
"as.factor(group)1", "as.factor(group)5", "as.factor(group)3",
"as.factor(group)6"), class = "data.frame")