Boxplot для 2 переменных - PullRequest
       3

Boxplot для 2 переменных

0 голосов
/ 05 октября 2019

У меня есть датафрейм df. Мне нужен квадратный график для двух переменных (Cat1 и Cat2) рядом. Я знаю, что это можно сделать, перенеся фрейм данных. Но есть ли способ сделать это без транспонирования. Есть ли способ сделать этот квадратный график в ggplot?

df
                   da Cat1  Cat2 Cat3
1 2016-06-04 04:05:45   25   58   45
2 2016-06-04 04:05:46   56   65   56
3 2016-06-04 04:05:45   45   54   47
4 2016-06-04 04:05:46   78   56   89

Что-то вроде ниже, я ожидаю enter image description here

1 Ответ

0 голосов
/ 05 октября 2019

Основной шаг - превратить ваши данные в так называемый набор данных tidy ( см. Здесь ).

Пакет tidyr имеет функцию gather длятолько для этой цели:

library(ggplot2)
library(tidyr)

df = data.frame(
  Cat1 = rnorm(50),
  Cat2 = rnorm(50),
  Cat3 = rnorm(50)
)

# 'long' version of df
dL = gather(df,key = 'category',value = 'y')

ggplot(data = dL) +
  geom_boxplot(mapping = aes(x = category,y = y))

Транспонирование - это больше матричная операция, чем операция с кадрами;в любом случае не ясно, что транспонирование могло бы помочь чему-либо, но кодирование ваших данных в менее компактное, но более простое представление (через gather) делает его доступным для API ggplot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...