Подмножество данных для графика ggplot2 - PullRequest
0 голосов
/ 23 мая 2018

Я работаю с ggplot2 и у меня есть вопрос о том, как разместить данные для графиков.У меня есть следующий набор данных (пример), и мне нужно создать линейный график, сравнивающий данные за первый квартал по годам компании A.

x = 2015 за первый квартал 2016 года за первый квартал 2017 года за 1 квартал y = данные для компании A

Company Year    Quarter Data
A       2015    Q1  1
B       2015    Q1  2
C       2015    Q1  3
A       2015    Q2  4
B       2015    Q2  5
C       2015    Q2  6
A       2015    Q3  7
B       2015    Q3  8
C       2015    Q3  9
A       2016    Q1  10
B       2016    Q1  11
C       2016    Q1  12
A       2016    Q2  13
B       2016    Q2  14
C       2016    Q2  15
A       2016    Q3  17
B       2016    Q3  18
C       2016    Q3  19

Для других графиков, участвующих в этом проекте, я использовал этот код:

ggplot(df[df$Company=="A",], aes(x=   , y=   , group=1)) +
  geom_line(color='steelblue', size=2) + geom_point(aes(color=Company))+
  xlab("Q1 by Year") +
  ylab("Data") + theme_minimal(base_size=12)+
  ggtitle("  ")+
  theme(plot.title=element_text(hjust=0.5, size=16, face="bold"))+
  theme(axis.text.x=element_text(size=10, vjust=0.5, color="black", face="bold"),
        axis.text.y=element_text(size=10, vjust=0.5, color="black", face="bold"),
        axis.title.x=element_text(size=13, face="bold"),
        axis.title.y=element_text(size=13, face="bold"))+
  theme(aspect.ratio=3/4) + scale_color_brewer(palette="Set2") + 
  theme(legend.position="none")

Какие-либо предложения о том, как поместить эти данные для моего необходимого графика?Это одна из вещей, с которой я борюсь больше всего.Любая помощь будет оценена!Спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

С помощью filter из пакета dplyr можно установить подмножество данных, которые вам нужны

library(tidyverse)

df <- read.table(text = "Company Year    Quarter Data
                            A       2015    Q1  1
                            B       2015    Q1  2
                            C       2015    Q1  3
                            A       2015    Q2  4
                            B       2015    Q2  5
                            C       2015    Q2  6
                            A       2015    Q3  7
                            B       2015    Q3  8
                            C       2015    Q3  9
                            A       2016    Q1  10
                            B       2016    Q1  11
                            C       2016    Q1  12
                            A       2016    Q2  13
                            B       2016    Q2  14
                            C       2016    Q2  15
                            A       2016    Q3  17
                            B       2016    Q3  18
                            C       2016    Q3  19",
                 header = TRUE, stringsAsFactors = FALSE)

# subset data
df_select <- df %>% 
  filter(Company == "A" & Quarter == "Q1")
df_select

#>   Company Year Quarter Data
#> 1       A 2015      Q1    1
#> 2       A 2016      Q1   10

ggplot(df_select, aes(x=Year, y=Data, group=1)) +
  geom_line(color='steelblue', size=2) + geom_point(aes(color=Company))+
  xlab("Q1 by Year") +
  ylab("Data") + theme_minimal(base_size=12)+
  ggtitle("  ")+
  theme(plot.title=element_text(hjust=0.5, size=16, face="bold"))+
  theme(axis.text.x=element_text(size=10, vjust=0.5, color="black", face="bold"),
        axis.text.y=element_text(size=10, vjust=0.5, color="black", face="bold"),
        axis.title.x=element_text(size=13, face="bold"),
        axis.title.y=element_text(size=13, face="bold"))+
  theme(aspect.ratio=3/4) + scale_color_brewer(palette="Set2") + 
  theme(legend.position="none")

Создано в 2018-05-22 с помощью Представить пакет (v0.2.0).

...