Проблемы со stat_summary по группам

фальтеман

Моя конечная цель здесь - stat_summaryдобавить итоговые строки к сюжету, используя существующее членство в группах. У меня проблемы с нанесением линий на график, и, хотя я понимаю проблему, я не могу понять, как ее избежать.

Пример:

library(ggplot2)
df <- data.frame(low=c(20,24,18,16), 
                 mid=c(60,61,48,45), 
                 high=c(80,75,81,83), 
                 category=factor(seq(1:4)), 
                 membership=factor(c(1,1,2,2)))

p <- ggplot(df, aes(x=category, y=mid)) +
  geom_linerange(aes(ymin=low, ymax=high)) +
  geom_point(shape=95, size=8)
p

Это дает график каждой из четырех категорий: введите описание изображения здесь

Первый шаг - использовать stat_summaryдля добавления строки, показывающей средства ymin, yи ymax, например, так:

p + 
  stat_summary(data=df, aes(x="Aggregate", ymin=mean(low), y=mean(mid), ymax=mean(high)), 
               fun.data="mean", geom="linerange", inherit.aes=F) +
  stat_summary(data=df, aes(x="Aggregate", y=mid), fun.y="mean", geom="point", 
               size=8, shape=95)

введите описание изображения здесь

Но когда я пытаюсь использовать членство dfдля создания средств внутри групп, я сталкиваюсь с проблемами linerange(хотя с pointграфиками все в порядке).

p + 
  stat_summary(data=df, aes(x="Aggregates", ymin=low, y=mid, ymax=high, group=membership), 
               fun.ymin="mean", fun.y="mean", fun.ymax="mean", geom="linerange", 
               inherit.aes=F, position_dodge(0.5))
  stat_summary(data=df, aes(x="Aggregates", y=mid, group=membership), 
               fun.y="mean", geom="point", size=8, shape=95, position_dodge(0.5))

введите описание изображения здесь

Я знаю из ggplot_build(p)этого ymin= y= ymax, поэтому на графике ничего не отображается. Однако, если я использую fun.dataвместо fun.ymin/, fun.ymaxя получаю сообщения об отсутствии требований yminи ymaxэстетики.

$data[[3]]
      x group ymin    y ymax 
1 5.125     2 46.5 46.5 46.5 
2 4.875     1 60.5 60.5 60.5 

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

З.Лин

Возможно, вам будет проще рассчитать средние по группам, прежде чем передавать фрейм данных ggplot()для построения графика. Один из возможных подходов ниже:

library(dplyr)

df %>%
  rbind(df %>%
          mutate(category = "Aggregate") %>%
          group_by(category, membership) %>%
          summarise_all(mean) %>% # calculate mean for low / mid / high by group
          ungroup() %>%
          select(colnames(df))) %>% #reorder columns to match the original df
  ggplot(aes(x = category, y = mid, ymin = low, ymax = high,
             colour = membership)) +
  geom_linerange(position = position_dodge(width = 0.5)) +
  geom_point(shape = 95, size = 8,
             position = position_dodge(width = 0.5))

(Я добавил, color = membershipчтобы группы были визуально различимы.)

сюжет

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Почему два средних значения не совпадают при вычислении вручную и с использованием stat_summary?

Средняя линия в stat_summary ошибочно связывает группы факторов по оси X

Проблемы со stat_summary по группам

Использование stat_summary для построения местоположения медианы

stat_summary только определенных строк

Отображение stat_summary внутри каждой группы с помощью эстетического сопоставления в ggplot

R - Как поместить два графика, которые используют stat_summary () в один график

Фигуры на линейном графике с использованием stat_summary

Отдельные фигуры, но с одинаковой заливкой и рамкой в ggplot с использованием stat_summary

Изменение положения чисел счетчика stat_summary на графике ggplot

проблема с использованием stat_summary для создания полос ошибок для линейных графиков при фасетировании

Построение средних значений в ggplot без использования stat_summary ()

Удаление точек из графика, созданного с помощью stat_summary

stat_summary добавить строку как текст

Как избежать того, чтобы stat_summary меняла диапазон оси Y?

дрожать положение точки на линейном графике при использовании stat_summary ()?

Как подогнать stat_summary к прямоугольнику в ggplot?

Выбор цвета для отметки означает на диаграмме со stat_summary

stat_Summary среднее значение для группы значений

Почему stat_summary не суммирует метки на моей гистограмме?

Как R представить две колонки с помощью ggplot stat_summary?

ggplot: Как изменить настройки boxplot, когда используется stat_summary

Автоматическое построение n с помощью ggplot и stat_summary

От stat_summary к функции geom_

Можно ли использовать интерактивные функции ggiraph с ggplots, сгенерированными с использованием stat_summary?

ggplot: Как добавить метки в stat_summary_bin (не stat_summary)?

В R, как заполнить цвет градиента на основе среднего значения при построении блочной диаграммы с помощью stat_summary в ggplot2

построение p-значений с использованием ggplot stat_summary

Вычислить stat_summary с линиями, проведенными между точками, а не исходными данными в ggplot2

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    Merging legends in plotly subplot

  3. 3

    Невозможно отобразить данные модели загрузки Spring в Thymeleaf

  4. 4

    Définition de la valeur par défaut dans le dictionnaire Python si la clé est manquante

  5. 5

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  6. 6

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  7. 7

    Как удалить круглые скобки из количества продуктов подкатегории WooCommerce

  8. 8

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  9. 9

    Чтение данных по строкам в Python с использованием openpyxl

  10. 10

    FormsAuthentication.SignOut () не работает после изменения CookieDomain

  11. 11

    Does addListener in JavaFX get garbage collected when the ChangeListener is typed as a lambda?

  12. 12

    ContentDialog.showAsync в универсальном оконном приложении Win 10

  13. 13

    Как изменить ширину UIPickerView с помощью нескольких средств выбора в SwiftUI?

  14. 14

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  15. 15

    Обновление строк и столбцов с помощью openpyxl из python

  16. 16

    PayPal REST API возвращает INVALID_CURRENCY_AMOUNT_FORMAT

  17. 17

    проверить повторяющееся значение и входное значение с помощью python openpyxl

  18. 18

    Ошибка при доступе к файлу по пути с использованием модуля python openpyxl

  19. 19

    Cannot find reference System

  20. 20

    Ошибка: недопустимый CSS после "body": ожидаемый селектор или at-правило, было "{" в строке 4

  21. 21

    Android Включение / выключение вспышки камеры программно с помощью Camera2

популярныйтег

файл