Избыточные метки фасетов и осей в ggplot2

У меня есть два вопроса относительно меток осей и фасетов в ggplot. Я искал, но не смог найти именно то, что хотел.

Я использую точечные диаграммы для построения графиков эффектов обработки и доверительных интервалов для набора данных о выборах с использованием нескольких критериев разбивки выборки (например: коалиция, офис и (прерывность). Данные и код для графика следующие:

treatment<- c(0.0575991,  0.0679221,    0.4750282,  0.5264731,  0.649701,   0.4012088,  0.8792834,  0.7785651,  -0.0523253, 0.302815,   0.0200715,  1.12161,    0.2174055,  -0.7917859, 0.053338,   -0.8650882, 0.060367,   0.0688683,  0.4708295,  0.5074752,  0.3618211,  0.2811037,  0.7121391,  0.3285163,  -0.1002695, 0.4352929,  -0.1790575, 0.7706336,  0.2003012,  0.5434131,  -0.0008607, 0.5872229)

window <-   c(2.5, 2.5, 2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    2.5,    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5)

office <-  c("Local Council",   "Local Council",    "Local Council",    "Local Council",    "Lower Chamber",    "Lower Chamber","Lower Chamber",    "Lower Chamber",    "Mayor",    "Mayor",    "Mayor",    "Mayor",    "Senate",   "Senate",   "Senate",   "Senate",   "Local Council",    "Local Council",    "Local Council",    "Local Council",    "Lower Chamber",    "Lower Chamber",    "Lower Chamber",    "Lower Chamber",    "Mayor",    "Mayor",    "Mayor",    "Mayor",    "Senate",   "Senate",   "Senate",   "Senate")

coalition   <-  c(1,    2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2)

upper   <-  c(0.0775991,    0.0879221,  0.5550282,  0.6464731,  0.909701,   0.9412088,  1.2792834,  1.4185651,  0.2276747,  0.602815,   0.4400715,  2.26161,    2.9374055,  5.2482141,  2.013338,   9.4549118,  0.060367,   0.0888683,  0.5508295,  0.6074752,  0.6018211,  0.6011037,  0.9921391,  0.8285163,  0.5197305,  0.7552929,  6.4009425,  1.4106336,  0.8203012,  1.8034131,  0.7791393,  1.8072229)

lower   <-  c(0.0375991,    0.0479221,  0.3950282,  0.4064731,  0.389701,   -0.1387912, 0.4792834,  0.1385651,  -0.3323253, 0.00281500000000001,    -0.3999285, -0.0183899999999999,    -2.5025945, -6.8317859, -1.906662,  -11.1850882,    0.060367,   0.0488683,  0.3908295,  0.4074752,  0.1218211,  -0.0388963, 0.4321391,  -0.1714837, -0.7202695, 0.1152929,  -6.7590575, 0.1306336,  -0.4196988, -0.7165869, -0.7808607, -0.6327771)

df <- data.frame(treatment, as.factor(window),office, coalition, upper, lower)

ggplot(data = df, mapping = aes(x = as.factor(window), y= treatment))+geom_pointrange( data = df,  stat = "identity",
mapping = aes(ymin= lower,ymax=upper))+facet_wrap(coalition ~ office, ncol=4, scales = "free")

где средняя точка точечной диаграммы фиксирует "вектор лечения", а "верхний" и "нижний" дают верхний и нижний пределы сегментов, отображающих доверительные интервалы. Я использую ggplot и использую facet_wrap для дезагрегации результатов по коалициям (кодируется "1" "и" 2 ") и офис.

Мои вопросы:

1- Как я могу избежать избыточности меток, чтобы коалиции маркировки номеров 1 и 2 могли охватывать четыре столбца в каждой строке?

2- Как я могу обеспечить избыточность меток оси X? (то есть: отображать метки осей только один раз для каждого столбца)

Любая помощь будет высоко ценится.

Спасибо Луис


person lschiumerini    schedule 26.11.2011    source источник


Ответы (1)


Просто замените facet_wrap на facet_grid и удалите аргумент ncol.

person zarat    schedule 27.11.2011
comment
Большое спасибо, Зарат. Сначала я пробовал использовать facet_grid, который действительно решил эту проблему. Но мне пришлось перейти на facet_wrap, потому что facet_grid не позволял мне устанавливать индивидуальные масштабы y для каждого аспекта. Это очень важно, потому что диапазон значений y по граням. Вы знаете, как совместить эти две цели? - person lschiumerini; 27.11.2011
comment
Нет, извините, у меня тоже нет решения. - person zarat; 28.11.2011