R - несколько графиков из одного набора данных: одно и то же значение x, но меняющееся значение y - PullRequest
0 голосов
/ 17 сентября 2018

Очень часто у меня есть набор данных, из которого мне нужно сделать несколько графиков, где значение x остается неизменным, но значение y изменяется.
Например, приведенный ниже код df имеет 1 факторную переменную, год и 3 показателя.
Мне нужно сделать 3 графика, где меняется только значение y.

library(dplyr)
library(ggplot2)
years <- c(2012,2013,2014,2015)
count <- c(20,25,28,31)
spend <- c(300,320,310,341)
prop <- c(.7,.3,.5,.8)

df <- data.frame(years,count,spend,prop)

ggplot(df,aes(x = years, y = count)) +
  geom_col()

ggplot(df,aes(x = years, y = spend)) +
  geom_col()

ggplot(df,aes(x = years, y = prop)) +
  geom_col()

Это очень простая версия, мои реальные графики гораздо более сложные.
До сих пор я использовал цикл для генерации нескольких графиков, я создал функцию, которая затем выполняется в цикле, и я сделал простое копирование / вставку.
Есть ли другой, более формальный способ сделать это? Либо с dplyr и ggplot, либо с чем-то еще?

Спасибо

1 Ответ

0 голосов
/ 17 сентября 2018

А как насчет melt() ваших данных и facet_wrap() сюжета?

library(reshape2)
df <-melt(df, id=c("years")) 

library(ggplot2)  
ggplot(df,aes(x = years, y =value)) +
  geom_col() + facet_wrap(~variable)

enter image description here

Или, если вы хотите использовать разные масштабы оси Y:

ggplot(df,aes(x = years, y =value)) +
  geom_col() + facet_wrap(~variable, scales = "free_y")

enter image description here

...