Ваш график является разумным, но он потребует некоторого уточнения, включая заголовок, метки оси и полные метки страны. Если ваша цель состоит в том, чтобы подчеркнуть тот факт, что Германия была единственной страной с повышением уровня смертности за период наблюдения, то простым способом сделать это было бы выделить эту линию на графике, либо с помощью более толстой линии, другой тип линии или альфа-прозрачность. Вы также можете дополнить свой график временных рядов гистограммой, показывающей изменение уровня смертности во времени, так что сложность линий временных рядов сводится к одной мере изменения.
Вот как вы можете создать эти графики, используя ggplot
в R
:
library(tidyr);
library(dplyr);
library(ggplot2);
#Create data frame in wide format
DATA_WIDE <- data.frame(Year = 1927L:1937L,
DE = c(10.9, 11.2, 11.4, 10.4, 10.4, 10.2, 10.8, 10.6, 11.4, 11.7, 11.5),
FR = c(16.5, 16.4, 17.9, 15.6, 16.2, 15.8, 15.8, 15.1, 15.7, 15.3, 15.0),
BE = c(13.0, 12.8, 14.4, 12.8, 12.7, 12.7, 12.7, 11.7, 12.3, 12.2, 12.5),
NL = c(10.2, 9.6, 10.7, 9.1, 9.6, 9.0, 8.8, 8.4, 8.7, 8.7, 8.8),
DEN = c(11.6, 11.0, 11.2, 10.8, 11.4, 11.0, 10.6, 10.4, 11.1, 11.0, 10.8),
CH = c(12.4, 12.0, 12.5, 11.6, 12.1, 12.2, 11.4, 11.3, 12.1, 11.4, 11.3),
AUT = c(15.0, 14.5, 14.6, 13.5, 14.0, 13.9, 13.2, 12.7, 13.7, 13.2, 13.3),
CZ = c(16.0, 15.1, 15.5, 14.2, 14.4, 14.1, 13.7, 13.3, 13.5, 13.3, 13.3),
PL = c(17.3, 16.4, 16.7, 15.6, 15.5, 15.0, 14.2, 14.4, 14.0, 14.2, 14.0));
#Convert data to long format
DATA_LONG <- DATA_WIDE %>% gather(Country, Measurement, DE:PL);
#Set line-types and sizes for plot
#Germany (DE) is the fifth country in the plot
LINETYPE <- c("dashed", "dashed", "dashed", "dashed", "solid", "dashed", "dashed", "dashed", "dashed");
SIZE <- c(1, 1, 1, 1, 2, 1, 1, 1, 1);
#Create time-series plot
theme_set(theme_bw());
PLOT1 <- ggplot(DATA_LONG, aes(x = Year, y = Measurement, colour = Country)) +
geom_line(aes(size = Country, linetype = Country)) +
scale_size_manual(values = SIZE) +
scale_linetype_manual(values = LINETYPE) +
scale_x_continuous(breaks = 1927:1937) +
scale_y_continuous(limits = c(0, 20)) +
labs(title = "Annual Time Series Plot: Death Rates over Time",
subtitle = "Only Germany (DE) trends upward from 1927-37") +
xlab("Year") + ylab("Crude Death Rate\n(per 1,000 population)");
#Create new data frame for differences
DATA_DIFF <- data.frame(Country = c("DE", "FR", "BE", "NL", "DEN", "CH", "AUT", "CZ", "PL"),
Change = as.numeric(DATA_WIDE[11, 2:10] - DATA_WIDE[1, 2:10]));
#Create bar plot
PLOT2 <- ggplot(DATA_DIFF, aes(x = reorder(Country, - Change), y = Change, colour = Country, fill = Country)) +
geom_bar(stat = "identity") +
labs(title = "Bar Plot: Change in Death Rates from 1927-37",
subtitle = "Only Germany (DE) shows an increase in death rate") +
xlab(NULL) + ylab("Change in crude Death Rate\n(per 1,000 population)");
Это приводит к следующим участкам:
Примечание: мне известно, что ОП намеревался осветить изменение уровня смертности с 1932 года, когда тенденция в Германии начала расти. Это кажется мне немного похожим на сбор вишни, и я нахожу сомнительным, когда выбираются временные интервалы для получения определенного тренда. По этой причине я рассмотрел интервал во всем диапазоне данных, который отличается от сравнения с ОП.