Настройка данных для ggplot facet_wrap - PullRequest
0 голосов
/ 01 ноября 2018

Данные:

enter image description here

То, что я хотел бы сделать, это использовать facet_wrap из четырех сегментов, где каждый сегмент содержит три графика с осью x, помеченной как Месяц-Год, ось y со значениями, а три участка в первом сегменте будут L1, DRP. -L1 и OSM-L1 и т. Д.

Верхняя метка каждого сегмента будет L1, L2, L3 и L4. У меня вопрос, могу ли я установить это с данными, как я показал выше, или я должен создать другой столбец с меткой «Местоположение», в котором будут перечислены L1, L2, L3, L4 и каждая строка значения для каждого местоположения?

Это код, который я сгенерировал до сих пор, но (1) я не уверен, как добавить другие строки, то есть DRP_1, OSM_1 и т. Д. В каждый сегмент; и (2) я не уверен, почему он не отображает нулевые значения?

library(ggplot2,scales)
month=rep(c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),4)
numparts=c(0,   0,  0,  0,  0,  0,  52000,  2000,   0,  0,  0,  0,
           0,   0,  0,  0,  35000,  5000,   0,  20000,  0,  0,  0,  0,
           0,   0,  7500,   17000,  625,    0,  50, 0,  0,  2500,   0,  0,
           0,   0,  250,    0,  1800,   900,    800,    500,    600,    0,  0,  11390)
location=c("Location 1","Location 2","Location 3","Location 4")
data=data.frame(month,numparts,location)

# Faceting
ggplot(data, aes(y=numparts, x=month)) + 
  geom_line( stat="identity") + 
  expand_limits(y=0)+
  scale_x_discrete(labels = month)+
  facet_wrap(~location,scales="free_y")+
  labs(x="Month in 2017",y="Number of Parts")

enter image description here

1 Ответ

0 голосов
/ 02 ноября 2018

Ваш код данных не совпадает с кодом на скриншоте.

Это пример данных, взяв первые 5 строк с вашего скриншота:

Для добавления других строк вам нужна группа aes. Взгляните на этот пост.

library(ggplot2)
library(scales)

val <- c(0, 0, 0, 0, 0,
       0, 0, 0, 0, 35000,
       0, 0, 7500, 17000, 625, 
       0, 0, 250, 0, 1800,
       1548, 500, 0, 0, 0,
       430, 2857, 0, 0, 0,
       0, 0, 0, 0, 0,
       0, 0, 0, 0, 0)

location <-   c(rep("Location 1", 5),
              rep("Location 2", 5),
              rep("Location 3", 5),
              rep("Location 4", 5))

part <- c(rep("L", 20),
          rep("DRP", 20))


data <- data.frame(location, part, val)
data$month <- factor(c("Jan","Feb","Mar","Apr", "May"), levels = c("Jan","Feb","Mar","Apr", "May"))


ggplot(data, aes(y = val, x = month, group = part)) + 
  geom_line(aes(color = part)) + scale_x_discrete(labels = month) + facet_wrap(~location)

enter image description here

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