Это вопрос новичка. Я потратил большую часть дня, пытаясь понять, как обрабатывать мои данные, но все примеры столкновения, с которыми я столкнулся, кажутся неподходящими для моего набора данных.
Вот первые пять строк из моих данных:
Date Germany.Yield Italy.Yield Greece.Yield Italy_v_Germany.Spread Greece_v_Germany.Spread
2020-04-19 -0.472 1.820 2.287 2.292 2.759
2020-04-12 -0.472 1.790 2.112 2.262 2.584
2020-04-05 -0.345 1.599 1.829 1.944 2.174
2020-03-29 -0.441 1.542 1.972 1.983 2.413
2020-03-22 -0.475 1.334 1.585 1.809 2.060
Я просто хочу создать две линейные диаграммы. На обоих графиках ось X будет датой. На первом графике ось Y должна быть Italy_v_Germany.Spread
, а на втором - ось Y Greece_v_Germany.Spread
.
Первый график выглядит следующим образом:
Итак, я хочу, чтобы две диаграммы появлялись рядом друг с другом, например:
Одна слева должна быть Italy_v_Germany.Spread
, а один справа должен быть Greece_v_Germany.Spread
.
Я действительно понятия не имею, с чего начать. Надеюсь, что кто-то может указать мне в правильном направлении.
В целях воспроизводимости примера я поделюсь ссылкой на файлы CSV, которые я использую: https://1drv.ms/u/s! AvGKDeEV3LOsmmlHkzO6YVQTRiOX? E = mukBVy . К сожалению, эти файлы конвертируются в формат Excel, когда они передаются по этой ссылке, поэтому вам, возможно, придется экспортировать файлы в файлы CSV, чтобы код работал.
Вот код, который у меня есть:
library(ggplot2)
library(scales)
library(extrafont)
library(dplyr)
library(tidyr)
work_dir <- "D:\\OneDrive\\Documents\\Economic Data\\Historical Yields\\Eurozone"
setwd(work_dir)
# Germany
#---------------------------------------
germany_yields <- read.csv(file = "Germany 10-Year Yield Weekly (2007-2020).csv", stringsAsFactors = F)
germany_yields <- germany_yields[, -(3:6)]
colnames(germany_yields)[1] <- "Date"
colnames(germany_yields)[2] <- "Germany.Yield"
#---------------------------------------
# Italy
#---------------------------------------
italy_yields <- read.csv(file = "Italy 10-Year Yield Weekly (2007-2020).csv", stringsAsFactors = F)
italy_yields <- italy_yields[, -(3:6)]
colnames(italy_yields)[1] <- "Date"
colnames(italy_yields)[2] <- "Italy.Yield"
#---------------------------------------
# Greece
#---------------------------------------
greece_yields <- read.csv(file = "Greece 10-Year Yield Weekly (2007-2020).csv", stringsAsFactors = F)
greece_yields <- greece_yields[, -(3:6)]
colnames(greece_yields)[1] <- "Date"
colnames(greece_yields)[2] <- "Greece.Yield"
#---------------------------------------
# Join data
#---------------------------------------
combined <- merge(merge(germany_yields, italy_yields, by = "Date", sort = F),
greece_yields, by = "Date", sort = F)
combined <- na.omit(combined)
combined$Date <- as.Date(combined$Date,format = "%B %d, %Y")
combined["Italy_v_Germany.Spread"] <- combined$Italy.Yield - combined$Germany.Yield
combined["Greece_v_Germany.Spread"] <- combined$Greece.Yield - combined$Germany.Yield
#--------------------------------------------------------------------
fl_dates <- c(tail(combined$Date, n=1), head(combined$Date, n=1))
ggplot(data=combined, aes(x = Date, y = Italy_v_Germany.Spread)) + geom_line() +
scale_x_date(limits = fl_dates,
breaks = seq(as.Date("2008-01-01"), as.Date("2020-01-01"), by="2 years"),
expand = c(0, 0),
date_labels = "%Y")