2015-04-11 3 views
1

Это кажется таким простым, но есть что-то фундаментальное, чего я не получаю здесь. У меня есть dataframe с подсчетами какого-либо события в месяц в виде столбцов в год в виде строк. Например:R ggplot2 Таблица диаграмм на нескольких столбцах

season sep oct nov dec jan feb 
2000 2 7 47 152 259 140 
2001 1 5 88 236 251 145 
2002 2 14 72 263 331 147 
2003 5 6 71 207 290 242 

Во-первых, я хотел бы создать гистограмму на один сезон. Например, в сезоне 2000 года гистограмма, показывающая значения для каждого месяца в виде вертикальной полосы (увы, не хватит rep, чтобы отправить изображение примера). Я предполагаю, что мне нужно каким-то образом изменить мои данные?

В конечном счете, я хотел бы создать графический набор графиков, один на каждый сезон.

Обратите внимание, что я нашел подобное сообщение, но сообщение было сложным из-за отсутствия ясности в вопросе.

+1

здесь один http://stackoverflow.com/questions/16761329/how-to-make-a-ggplot-graph-showing-a-factor-in-x -axis-and-continu-variables-i – rawr

+1

@ пользователь20650 - да, спасибо. См. Мой комментарий ниже. Отсутствие основ и понимание таяния - вот моя проблема. – aspergerboy

ответ

3
library(reshape2) 
library(ggplot2) 
df_m <- melt(df, id.vars = "season") 

Для построения в течение одного сезона (например, 2000)

ggplot(subset(df_m, season == "2001"), aes(x = variable, y = value)) + 
geom_bar(stat = "identity") 

И для фасета обернутого набора диаграмм попробовать:

ggplot(df_m, aes(x = variable, y = value)) + geom_bar(stat = "identity") + 
facet_wrap(~season) 

enter image description here

+0

Большое спасибо @ RStudent. С моей точки зрения, вы должны изменить свое имя на RMaster! FYI, я совершенно новичок в этом и почувствовал, что мне нужно больше внимания уделять первому пониманию векторов, списков, массивов и фреймов данных, но графики настолько интересны. В конечном счете я прыгнул вперед, но ваша демонстрация таяния помогла мне понять, что мне нужно вернуться к основам. Я хочу по-настоящему понять, как здесь/почему. – aspergerboy

1

Вот tidyr/dplyr подход:

if (!require("pacman")) install.packages("pacman") 
pacman::p_load(dplyr, tidyr, ggplot2) 

dat %>% 
    gather(month, value, -season) %>% 
    ggplot(aes(y = value, x = month)) + 
    geom_bar(stat = "identity") + 
    facet_wrap(~season) 

enter image description here

+0

Мне это нравится. Благодарю. Я читал о dplyr, и мне кажется гораздо более доступным. Для ударов я хотел бы построить все четыре года, по порядку по месяцам на одном графике, но я не буду спрашивать - я попытаюсь это понять. Я считаю, что изучение R лучше всего, когда я получаю данные, с которыми я действительно знаком. – aspergerboy

Смежные вопросы