library(DataExplorer)
## Warning: пакет 'DataExplorer' был собран под R версии 4.5.3
library(haven)
## Warning: пакет 'haven' был собран под R версии 4.5.2
cli <- read_sav(file.choose())
library(questionr)
## Warning: пакет 'questionr' был собран под R версии 4.5.2
library(dplyr)
## Warning: пакет 'dplyr' был собран под R версии 4.5.2
##
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
##
## filter, lag
## Следующие объекты скрыты от 'package:base':
##
## intersect, setdiff, setequal, union
V14<-cli %>%
select(contains("V14"))
str(V14)
## tibble [913 × 12] (S3: tbl_df/tbl/data.frame)
## $ V14_1 : dbl+lbl [1:913] 0, 0, 0, NA, 1, 1, 0, 1, 1, NA, NA, 0, 0, 0...
## ..@ label : chr "Резкие перепады температуры (от холода к теплу и наоборот)"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_2 : dbl+lbl [1:913] 1, 1, 1, NA, 0, 0, 1, 0, 0, NA, NA, 0, 0, 1...
## ..@ label : chr "Затяжные морозы, увеличение периодов аномального холода"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_3 : dbl+lbl [1:913] 0, 0, 0, NA, 1, 0, 0, 1, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Частые оттепели"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_4 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 1, 0, 0, 0, NA, NA, 0, 1, 1...
## ..@ label : chr "Увеличение гололеда на дорогах"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_5 : dbl+lbl [1:913] 1, 1, 0, NA, 1, 1, 0, 0, 0, NA, NA, 0, 0, 1...
## ..@ label : chr "Обильные снегопады, увеличение снежного покрова"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_6 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Сход снежных лавин"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_7 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 0, 0, 0, 1, NA, NA, 0, 1, 0...
## ..@ label : chr "Увеличение количества пасмурных дней, нехватка солнца"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_8 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 1, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Раннее таяние и более позднее образование речного льда"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_9 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Участились ледовые зажоры, наледи на реках"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_10 : dbl+lbl [1:913] 1, 1, 1, NA, 0, 1, 0, 0, 1, NA, NA, 1, 0, 1...
## ..@ label : chr "Усилились ветра, метели и снежные наносы"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_88 : dbl+lbl [1:913] 0, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, 0, 0...
## ..@ label : chr "Другое"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V14_88_txt: chr [1:913] "" "" "" "" ...
## ..- attr(*, "label")= chr "Другое"
## ..- attr(*, "format.spss")= chr "A4500"
dim(V14)
## [1] 913 12
names(V14)
## [1] "V14_1" "V14_2" "V14_3" "V14_4" "V14_5"
## [6] "V14_6" "V14_7" "V14_8" "V14_9" "V14_10"
## [11] "V14_88" "V14_88_txt"
V14tab<-V14 %>%
multi.table(true.codes=list("да"), freq=TRUE) %>%
as.data.frame() %>%
rename(Pct=`%multi`) %>%
arrange(desc(Pct))
V14tab
## n Pct
## V14_2 436 47.8
## V14_1 428 46.9
## V14_10 381 41.7
## V14_5 310 34.0
## V14_4 266 29.1
## V14_7 211 23.1
## V14_3 102 11.2
## V14_8 64 7.0
## V14_6 58 6.4
## V14_9 42 4.6
## V14_88 23 2.5
## V14_88_txt 0 0.0
library(sjlabelled)
## Warning: пакет 'sjlabelled' был собран под R версии 4.5.2
##
## Присоединяю пакет: 'sjlabelled'
## Следующий объект скрыт от 'package:dplyr':
##
## as_label
## Следующие объекты скрыты от 'package:haven':
##
## as_factor, read_sas, read_spss, read_stata, write_sas, zap_labels
# Получаем метки для всех столбцов V14 (независимо от типа)
V14labs <- cli %>%
select(contains("V14")) %>%
get_label()
V14labs
## V14_1
## "Резкие перепады температуры (от холода к теплу и наоборот)"
## V14_2
## "Затяжные морозы, увеличение периодов аномального холода"
## V14_3
## "Частые оттепели"
## V14_4
## "Увеличение гололеда на дорогах"
## V14_5
## "Обильные снегопады, увеличение снежного покрова"
## V14_6
## "Сход снежных лавин"
## V14_7
## "Увеличение количества пасмурных дней, нехватка солнца"
## V14_8
## "Раннее таяние и более позднее образование речного льда"
## V14_9
## "Участились ледовые зажоры, наледи на реках"
## V14_10
## "Усилились ветра, метели и снежные наносы"
## V14_88
## "Другое"
## V14_88_txt
## "Другое"
V14tab$n<-V14labs
V14tab
## n Pct
## V14_2 Резкие перепады температуры (от холода к теплу и наоборот) 47.8
## V14_1 Затяжные морозы, увеличение периодов аномального холода 46.9
## V14_10 Частые оттепели 41.7
## V14_5 Увеличение гололеда на дорогах 34.0
## V14_4 Обильные снегопады, увеличение снежного покрова 29.1
## V14_7 Сход снежных лавин 23.1
## V14_3 Увеличение количества пасмурных дней, нехватка солнца 11.2
## V14_8 Раннее таяние и более позднее образование речного льда 7.0
## V14_6 Участились ледовые зажоры, наледи на реках 6.4
## V14_9 Усилились ветра, метели и снежные наносы 4.6
## V14_88 Другое 2.5
## V14_88_txt Другое 0.0
library(ggplot2)
## Warning: пакет 'ggplot2' был собран под R версии 4.5.2
##
## Присоединяю пакет: 'ggplot2'
## Следующий объект скрыт от 'package:sjlabelled':
##
## as_label
library(stringr)
library(forcats)
## Warning: пакет 'forcats' был собран под R версии 4.5.2
##
## Присоединяю пакет: 'forcats'
## Следующий объект скрыт от 'package:sjlabelled':
##
## as_factor
library(scales)
## Warning: пакет 'scales' был собран под R версии 4.5.1
#| fig-width: 200%
V14tab %>%
mutate(n = fct_reorder(n, Pct)) %>% # переставим местами уровни
ggplot(aes(x=n, y=Pct, fill=n)) + # создадим типовой график
geom_bar(stat="identity", width = 0.6)+ # добавим geom
geom_text(aes(label=number(Pct,accuracy=0.1, decimal.mark = ",")), hjust=-0.3, family = "Ink Free", size=4)+ # поработаем с подписями данных
expand_limits(y=c(0,80))+# увеличим лимит оси
coord_flip()+ # перевернем график в горизонтальное положение
theme_void()+ # добавим минималистичную тему
theme(axis.text.y = element_text(size = 10, family = "Ink Free"))+ # установим шрифт для подписей
theme(legend.position="none")+ # уберем легенду
scale_x_discrete(labels = function(x) str_wrap(x, width = 30)) # Сделаем длинные подписи в несколько строк
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): семейство
## шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
В зимний период респонденты чаще всего отмечают резкие перепады температуры (47,8%) и продолжительные морозы (46,9%). Таким образом, ключевая проблема зимнего сезона в восприятии респондентов — это нестабильность температурного режима и аномальные холода.
library(questionr)
library(dplyr)
V16<-cli %>%
select(contains("V16"))
str(V16)
## tibble [913 × 11] (S3: tbl_df/tbl/data.frame)
## $ V16_1 : dbl+lbl [1:913] 1, 1, 0, NA, 1, 0, 1, 0, 1, NA, NA, 0, 0, 0...
## ..@ label : chr "Увеличение количества засушливых дней, без осадков"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_2 : dbl+lbl [1:913] 0, 1, 0, NA, 1, 1, 1, 0, 1, NA, NA, 0, 1, 0...
## ..@ label : chr "Увеличение периодов аномальной жары"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_3 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 0, 0, 1, 1, NA, NA, 0, 0, 1...
## ..@ label : chr "Большое количество осадков, сильных дождей"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_4 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Увеличение количества камнепадов и оползней в горах"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_5 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 1, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_6 : dbl+lbl [1:913] 0, 0, 1, NA, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0...
## ..@ label : chr "Таяние вечной мерзлоты, выход грунтовых вод на поверхность"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_7 : dbl+lbl [1:913] 1, 1, 0, NA, 0, 1, 0, 1, 1, NA, NA, 1, 1, 1...
## ..@ label : chr "Сильные ветры, штормы"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_8 : dbl+lbl [1:913] 0, 0, 0, NA, 0, 1, 0, 0, 1, NA, NA, 0, 0, 0...
## ..@ label : chr "Рост количества насекомых, комаров, мошки"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_9 : dbl+lbl [1:913] 0, 0, 1, NA, 1, 1, 0, 0, 1, NA, NA, 0, 0, 0...
## ..@ label : chr "Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_88 : dbl+lbl [1:913] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
## ..@ label : chr "Другое"
## ..@ format.spss: chr "F8.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "нет" "да"
## $ V16_88_txt: chr [1:913] "" "" "" "" ...
## ..- attr(*, "label")= chr "Другое"
## ..- attr(*, "format.spss")= chr "A4500"
dim(V16)
## [1] 913 11
names(V16)
## [1] "V16_1" "V16_2" "V16_3" "V16_4" "V16_5"
## [6] "V16_6" "V16_7" "V16_8" "V16_9" "V16_88"
## [11] "V16_88_txt"
V16tab<-V16 %>%
multi.table(true.codes=list("да"), freq=TRUE) %>%
as.data.frame() %>%
rename(Pct=`%multi`) %>%
arrange(desc(Pct))
V16tab
## n Pct
## V16_7 406 44.5
## V16_3 392 42.9
## V16_1 326 35.7
## V16_2 290 31.8
## V16_8 221 24.2
## V16_5 173 18.9
## V16_9 142 15.6
## V16_6 80 8.8
## V16_4 57 6.2
## V16_88 34 3.7
## V16_88_txt 0 0.0
library(sjlabelled)
# Получаем метки для всех столбцов V14 (независимо от типа)
V16labs <- cli %>%
select(contains("V16")) %>%
get_label()
V16labs
## V16_1
## "Увеличение количества засушливых дней, без осадков"
## V16_2
## "Увеличение периодов аномальной жары"
## V16_3
## "Большое количество осадков, сильных дождей"
## V16_4
## "Увеличение количества камнепадов и оползней в горах"
## V16_5
## "Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались"
## V16_6
## "Таяние вечной мерзлоты, выход грунтовых вод на поверхность"
## V16_7
## "Сильные ветры, штормы"
## V16_8
## "Рост количества насекомых, комаров, мошки"
## V16_9
## "Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам"
## V16_88
## "Другое"
## V16_88_txt
## "Другое"
library(sjlabelled)
# Получаем метки для всех столбцов V14 (независимо от типа)
V16labs <- cli %>%
select(contains("V16")) %>%
get_label()
V16labs
## V16_1
## "Увеличение количества засушливых дней, без осадков"
## V16_2
## "Увеличение периодов аномальной жары"
## V16_3
## "Большое количество осадков, сильных дождей"
## V16_4
## "Увеличение количества камнепадов и оползней в горах"
## V16_5
## "Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались"
## V16_6
## "Таяние вечной мерзлоты, выход грунтовых вод на поверхность"
## V16_7
## "Сильные ветры, штормы"
## V16_8
## "Рост количества насекомых, комаров, мошки"
## V16_9
## "Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам"
## V16_88
## "Другое"
## V16_88_txt
## "Другое"
V16tab$n<-V16labs
V16tab
## n
## V16_7 Увеличение количества засушливых дней, без осадков
## V16_3 Увеличение периодов аномальной жары
## V16_1 Большое количество осадков, сильных дождей
## V16_2 Увеличение количества камнепадов и оползней в горах
## V16_8 Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались
## V16_5 Таяние вечной мерзлоты, выход грунтовых вод на поверхность
## V16_9 Сильные ветры, штормы
## V16_6 Рост количества насекомых, комаров, мошки
## V16_4 Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам
## V16_88 Другое
## V16_88_txt Другое
## Pct
## V16_7 44.5
## V16_3 42.9
## V16_1 35.7
## V16_2 31.8
## V16_8 24.2
## V16_5 18.9
## V16_9 15.6
## V16_6 8.8
## V16_4 6.2
## V16_88 3.7
## V16_88_txt 0.0
library(ggplot2)
library(stringr)
library(forcats)
library(scales)
#| fig-width: 200%
V16tab %>%
mutate(n = fct_reorder(n, Pct)) %>% # переставим местами уровни
ggplot(aes(x=n, y=Pct, fill=n)) + # создадим типовой график
geom_bar(stat="identity", width = 0.6)+ # добавим geom
geom_text(aes(label=number(Pct,accuracy=0.1, decimal.mark = ",")), hjust=-0.3, family = "Ink Free", size=4)+ # поработаем с подписями данных
expand_limits(y=c(0,80))+# увеличим лимит оси
coord_flip()+ # перевернем график в горизонтальное положение
theme_void()+ # добавим минималистичную тему
theme(axis.text.y = element_text(size = 10, family = "Ink Free"))+ # установим шрифт для подписей
theme(legend.position="none")+ # уберем легенду
scale_x_discrete(labels = function(x) str_wrap(x, width = 30)) # Сделаем длинные подписи в несколько строк
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
Наиболее остро респонденты ощущают увеличение засушливых дней (44,5%) и периодов аномальной жары (43,0%). Это указывает на то, что главная климатическая проблема в восприятии респондентов — это засуха и жара.
regionandage<-as.data.frame(sjmisc::flat_table(cli, Region, age_cats3, margin = "row", digits = 1))
library(ggplot2)
library(scales)#нужна для того, чтобы отформатировать подпись
ggplot(data=regionandage, aes(x=Region, y=Freq, fill=age_cats3)) +
geom_bar(stat="identity", position="dodge", width = 0.6)+
geom_text(aes(label=number(Freq,accuracy=0.1, decimal.mark = ",")), position = position_dodge(width = 0.6), hjust=-0.3, family = "Arial", size=4)+
coord_flip()+
theme_void()+
expand_limits(y=c(0,100))+
theme(axis.text.y = element_text(size = 10, family = "Arial"))+
scale_x_discrete(limits=rev)+
theme(legend.position="bottom")+
theme(legend.title=element_blank())
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): семейство
## шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## семейство шрифтов не найдено в базе данных шрифтов Windows
Алтайский край: примерно равная доля населения приходится на группы
«31–49 лет» и «50 лет и старше»
Республика Алтай: наибольшая доля приходится на группу «31–49 лет»
Республика Тыва:самая высокая доля молодёжи (до 30 лет) среди представленных регионов. Преобладает группа «31–49 лет», а доля старшего поколения — наименьшая.
V14Regiontab<-cross.multi.table(V14, cli$Region, true.codes=list("да"), freq=TRUE)
V14Regiontab<-as_tibble(V14Regiontab)
V14Regiontab$n<-V14labs
V14Regiontab<-V14Regiontab %>%
relocate(n)
V14Regiontab
## # A tibble: 12 × 5
## n `1` `2` `3` `4`
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Резкие перепады температуры (от холода к теплу и нао… 63.5 43.3 31.8 0
## 2 Затяжные морозы, увеличение периодов аномального хол… 25.5 63 44.3 0
## 3 Частые оттепели 17.9 9.4 5.7 0
## 4 Увеличение гололеда на дорогах 23.4 29.6 36.5 0
## 5 Обильные снегопады, увеличение снежного покрова 22.6 39.7 37 0
## 6 Сход снежных лавин 2.2 9 6.2 0
## 7 Увеличение количества пасмурных дней, нехватка солнца 17.5 26.7 22.9 0
## 8 Раннее таяние и более позднее образование речного ль… 7.7 8.1 3.6 0
## 9 Участились ледовые зажоры, наледи на реках 1.8 6.7 3.6 0
## 10 Усилились ветра, метели и снежные наносы 34.7 47.3 39.1 0
## 11 Другое 0 4.5 1.6 0
## 12 Другое 0 0 0 0
`
library(tidyr)
## Warning: пакет 'tidyr' был собран под R версии 4.5.2
library(ggplot2)
library(scales)
# Переименовываем колонки
names(V14Regiontab) <- c("V14", "Алтайский_край", "Республика_Алтай", "Республика_Тыва", "Монголия")
# Преобразуем в длинный формат
df_long <- pivot_longer(V14Regiontab,
cols = c("Алтайский_край", "Республика_Алтай",
"Республика_Тыва", "Монголия"),
names_to = "Region",
values_to = "Freq")
# Убираем строки с нулевыми значениями (Монголия)
df_long <- df_long %>% filter(Freq > 0)
# Строим график (убираем family="Arial" чтобы избежать предупреждений о шрифтах)
ggplot(data = df_long, aes(x = V14, y = Freq, fill = Region)) +
geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
geom_text(aes(label = label_number(accuracy = 0.1, decimal.mark = ",")(Freq)),
position = position_dodge(width = 0.8),
hjust = -0.2,
size = 3.5) +
coord_flip() +
labs(x = NULL, y = "Проценты (%)") +
theme_minimal() +
expand_limits(y = c(0, 70)) +
theme(axis.text.y = element_text(size = 10),
axis.text.x = element_text(size = 9),
legend.position = "bottom",
legend.title = element_blank())
Алтайский край больше всего страдает от перепадов температур, а Республики Алтай и Тыва — от затяжных морозов.
V16Regiontab<-cross.multi.table(V16, cli$Region, true.codes=list("да"), freq=TRUE)
V16Regiontab<-as_tibble(V16Regiontab)
V16Regiontab$n<-V16labs
V16Regiontab<-V16Regiontab %>%
relocate(n)
V16Regiontab
## # A tibble: 11 × 5
## n `1` `2` `3` `4`
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Увеличение количества засушливых дней, без осадков 23.7 45.3 30.7 0
## 2 Увеличение периодов аномальной жары 39.1 31.4 22.4 0
## 3 Большое количество осадков, сильных дождей 60.2 34.1 39.1 0
## 4 Увеличение количества камнепадов и оползней в горах 0.7 8.3 9.4 0
## 5 Усилился паводок, разливы рек, затопление мест, кото… 6.9 27.6 16.1 0
## 6 Таяние вечной мерзлоты, выход грунтовых вод на повер… 2.6 14.8 3.6 0
## 7 Сильные ветры, штормы 29.2 52.2 48.4 0
## 8 Рост количества насекомых, комаров, мошки 26.6 26.5 15.6 0
## 9 Рост количества насекомых-вредителей, угрожающих сел… 20.8 15.9 7.3 0
## 10 Другое 0.4 5.6 4.2 0
## 11 Другое 0 0 0 0
library(tidyr)
library(ggplot2)
library(scales)
# Переименовываем колонки
names(V16Regiontab) <- c("V16", "Алтайский_край", "Республика_Алтай", "Республика_Тыва", "Монголия")
# Преобразуем в длинный формат
df_long <- pivot_longer(V16Regiontab,
cols = c("Алтайский_край", "Республика_Алтай",
"Республика_Тыва", "Монголия"),
names_to = "Region",
values_to = "Freq")
# Убираем строки с нулевыми значениями (Монголия)
df_long <- df_long %>% filter(Freq > 0)
# Строим график (убираем family="Arial" чтобы избежать предупреждений о шрифтах)
ggplot(data = df_long, aes(x = V16, y = Freq, fill = Region)) +
geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
geom_text(aes(label = label_number(accuracy = 0.1, decimal.mark = ",")(Freq)),
position = position_dodge(width = 0.8),
hjust = -0.2,
size = 3.5) +
coord_flip() +
labs(x = NULL, y = "Проценты (%)") +
theme_minimal() +
expand_limits(y = c(0, 70)) +
theme(axis.text.y = element_text(size = 10),
axis.text.x = element_text(size = 9),
legend.position = "bottom",
legend.title = element_blank())
Летние климатические риски воспринимаются по-разному: Алтайский край беспокоят большое количество осадков,сильных дождей (60.2%), Республику Алтай и Республику Тыва— сильные ветры и штормы (52,2 и 48,6 соответственно).