Я довольно новичок в R, но у меня хороший прогресс.Я смог согнуть ggplot2 по своей воле, за исключением одного: порядка, в котором метки категорий размещаются вдоль оси x в моем блокпосте.Я думаю, что это всего лишь дыра в моих знаниях о том, как обращаться к диапазонам фрейма данных в формулах, но вот фальшивые данные в виде фрейма данных с именем df:
Index Label Value
index1 A 1
index2 A 2
index3 A 3
index4 B 12
index5 B 11
index6 B 10
index7 C 8
index8 C 7
index9 C 9
...
index76 Z 15
index77 Z 17
index78 Z 16
Мой код графика выглядит как qplot(df$Label, df$Value, data=df) + scale_x_discrete("Label") + opts(axis.text.x = theme_text(angle = 90, hjust = 0, size=7)) + geom_boxplot()
и дает мне именно то, что я хочу, то есть блок-график, показывающий одну коробку и усы для метки A, одну для B и одну для C. Однако, ось идет в порядке меток (boxplot из 1,2,3находясь ближе всего к началу координат, 10,11,12 посередине, 7,8,9 справа от графика).То, что я хочу, чтобы данные коробочного графика начинались с подмножества, которое имеет наивысшее значение в среднем по метке, и продолжалось в порядке убывания.Я могу усреднить в пределах каждой метки значения mean(df$Label[1:3])
и mean(df$Label[4:6])
и т. Д., Но не могу понять, как заставить график отображаться так, чтобы графики для меток шли не в том порядке, в котором они отображаются в factor(df$Label)
(то есть A, B, C вдоль x с блоками в 2, 11, 8), но в порядке от наивысшего среднего в пределах метки к низшему (то есть B, C, An вдоль x и в блоках затем в 11, 8, 2).
Я думаю, я бы создал вектор, состоящий из каждого среднего значения внутри метки, и каким-то образом передал бы его в ggplot, чтобы указать порядок осей, но я не могу понять, как создать вектор для начала.
Что мне нужно знать, это:
Как лучше всего получить вектор, состоящий из средних значений каждой метки в порядке от самого высокого до самого низкого?
Какпередать этот вектор в ggplot
, чтобы он упорядочивал ось X по этим значениям, в то же время помечая ось x
с помощью factor(df$Label)
Я открыт для предложений по другим способам отображенияданные, но я думаю, что я довольно близок к тому, что я хочу, и среднее& разброс значений внутри данного ярлыка важен.