Сравните два кадра данных, используя линейный график в r - PullRequest
0 голосов
/ 26 июня 2018

my_query Фрейм данных1

quarter  year   value

q1       2012   100
q3       2013   200
q4       2014   400
q4       2015   250 
q3       2014   400

Фрейм данных 2

quarter  year   value

q1       2014   100
q3       2012   200
q4       2015   400
q4       2012   250 
q3       2015   400

Я хочу сравнить эти два с помощью графика в r. Можете ли вы предложить здесь?

Примечание: Я пробовал разные способы, но не повезло

plot(DF1$fy,DF1$value,
  main ="Distribution of Assets in quarters across years",
    xlab = 'years',ylab = 'vales',type='l')

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вы можете объединить оба data.frames вместе, используя dplyr::bind_rows, а затем используйте tidyr::expand, чтобы заполнить все недостающие quarter и year.

Теперь вы можете нарисовать график line и point вместе, используя ggplot как:

library(tidyverse)
library(ggplot2)

bind_rows(df1, df2, .id="Name") %>% 
  right_join(expand(., Name, year = min(year):max(year), 
                    quarter = c("q1","q2","q3","q4")), by=c("Name","quarter","year")) %>%
  unite(YearQtr, c("year","quarter"), sep=":") %>%
  ggplot(aes(x = YearQtr, y = value, group=Name, col = Name)) +
  geom_point() +
  geom_line()

Результат:

enter image description here

Данные:

df1 <- read.table(text="
quarter  year   value
q1       2012   100
q3       2013   200
q4       2014   400
q4       2015   250 
q3       2014   400",
header = TRUE, stringsAsFactors = FALSE)


df2 <- read.table(text="
quarter  year   value
q1       2014   100
q3       2012   200
q4       2015   400
q4       2012   250 
q3       2015   400",
header = TRUE, stringsAsFactors = FALSE)
0 голосов
/ 26 июня 2018

Вы должны получить желаемый результат с помощью следующего кода:

plot(DF1$year, DF1$value, type='l', col=1)
lines(DF2$year, DF2$value, col=2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...