#Source: https://t.me/rstudioprogr
#link on data file: https://docs.google.com/spreadsheets/d/1kBFAkBRiCXKfZA68CaZN0FyCnRtut4eN/edit?usp=sharing&ouid=103177799370390773118&rtpof=true&sd=true
library(readxl)
library(dplyr)
library(ggplot2)
library(ggrepel)
library(tidyr)
PMI_Russia_data <- read_excel("PMI_Russia_data.xlsx") %>% as.data.frame()
PMI_Russia_data
## Date Composite Manufacturing Services
## 1 2024-01-01 55.1 52.4 55.8
## 2 2024-02-01 52.2 54.7 51.1
## 3 2024-03-01 52.7 55.7 51.4
## 4 2024-04-01 51.9 54.3 50.5
## 5 2024-05-01 51.4 54.4 49.8
## 6 2024-06-01 49.8 54.9 47.6
## 7 2024-07-01 51.9 53.6 51.1
## 8 2024-08-01 52.1 52.1 52.3
## 9 2024-09-01 49.4 49.5 50.5
## 10 2024-10-01 50.9 50.6 51.6
## 11 2024-11-01 52.6 51.3 53.2
## 12 2024-12-01 51.1 50.8 51.2
## 13 2025-01-01 54.7 53.1 54.6
# Определение последних значений для подписи
data1 <- PMI_Russia_data %>% group_by(Date) %>% pivot_longer(cols = "Composite":"Services", values_to = "Values", names_to = "Names")
target_date <- as.POSIXct("2025-01-01", format = "%Y-%m-%d")
last_value <- data1 %>%
filter(Date %in% target_date) %>%
select(Date, Names, Values)
ggplot(data = data1, aes(x = Date, y = Values, color = Names)) +
theme(legend.position = "bottom",
panel.background = element_blank(), # Внутренняя область пустая
panel.border = element_rect(color = "grey", fill = NA, size = 1), # Серая граница
plot.background = element_blank()) + labs(y = "Значение", x = "", legend = "Названия индексов") + geom_smooth(method = "loess", se = FALSE, span = 0.4) +
geom_hline(yintercept = 50, linetype = "dashed", color = "grey3") + # Добавление штриховой линии на уровне 50
geom_text_repel(data = last_value, aes(label = Values),
box.padding = -1) + scale_color_manual(values = c("#885188", "#3F8ADB", "#DD7ADD")) +
scale_x_datetime(date_labels = "%b %y", # Изменяем формат даты и времени
date_breaks = "1 month") # Указываем, как часто отображать метки
