大数跨境
0
0

ggplot2可视化英国年平均气温

ggplot2可视化英国年平均气温 R语言数据分析指南
2021-05-09
0
导读:本节我介绍2张图,第一张回复群中一位小伙伴的问题,另一位小伙伴提供了我代码跟示例数据,我在此基础上进行了修改

本节我介绍2张图,第一张回复群中一位小伙伴的问题,另一位小伙伴提供了我代码跟示例数据,我在此基础上进行了修改,在此表示感谢,第2张图以散点图的形式对英国的气温进行可视化,希望各位观众老爷能够喜欢,群文件中可获取全部数据,喜欢多多转发。再此先行拜谢了

library(tidyverse)
library(magrittr)
library(GGally)
library(lubridate)
read_csv("data.csv") %>% as_tibble() %>% 
  set_colnames(c("Area","Perimeter","Compactness",
                 "Length","Width","Asymetry.coef",
                 "Grove.length","Type")) %>% 
  mutate(Type=as.factor(Type)) %>%
  ggpairs(.,showStrips = T,ggplot2::aes(color=Type)) + 
  theme(axis.text = element_text(colour = "black", size = 8),
        strip.background = element_rect(fill ="grey80"),
        strip.text = element_text(colour="black",size =8,
                                  face = "bold"),
        panel.background = element_rect(fill='white',colour='black'),
        panel.spacing.x = unit(0.1, "cm"),
        panel.spacing.y= unit(0.1, "cm"))

下方链接可获取英国的气温数据

data from Met Office https://www.metoffice.gov.uk/research/c limate/maps-and-data/uk-and-regional-series

加载数据

mean_l <- read.delim("uk_mean.xls") %>% 
  pivot_longer(cols = 2:13,names_to = "month",values_to = "mean")

max_l <- read.delim("uk_max.xls") %>% 
  pivot_longer(cols = 2:13,names_to = "month",values_to = "max")

min_l <- read.delim("uk_min.xls") %>% 
  pivot_longer(cols = 2:13,names_to = "month",values_to = "min")

数据清洗

all_sum <- mean_l %>%
  left_join(min_l, by = c("year","month")) %>% 
  left_join(max_l, by = c("year","month")) %>%
  filter(year < 2021) %>% group_by(year) %>%
  filter(!is.na(min)) %>%
  summarise(mean = mean(mean),
            min = mean(min),
            max = mean(max)) %>%
  ungroup()

数据可视化

ggplot(all_sum)+
  geom_ribbon(aes(x=year,ymin=min,ymax=max),alpha=0.5,fill="white")+
  geom_point(aes(x=year,y=min),colour="#277da1",size=2)+
  geom_line(aes(x=year,y=min),colour="#277da1",size=0.5)+
  geom_point(aes(x=year,y=max),colour="#f94144",size=2)+
  geom_line(aes(x=year,y=max),colour="#f94144",size=0.5)+
  geom_point(aes(x=year,y=mean),colour="#00664D",size=3,alpha=0.5)+
  geom_smooth(aes(x=year,y=mean),method=lm,se=FALSE,colour="#00664D")+
  scale_x_continuous(breaks=c(1880,1900,1920,1940,1960,1980,2000,2020),
                     labels=c("1880","1900","1920","1940","1960","1980","2000","2020"))+
  scale_y_continuous(breaks=c(2,3,4,5,6,7,8,9,10,11,12,13,14),
                     labels=c("2","","4","","6","","8","","10","","12","","14"))+
  labs(x="\nYear",
       y=expression("Temperature("*degree*C*")"),
       title="英国的年平均温度\n")+
  annotate("text",x=1910,y=5.65,label="minimum",colour="#277da1",fontface="bold",size=5)+
  annotate("text",x=1910,y=10.3,label="maximum",colour="#f94144",fontface="bold",size=5)+
  annotate("text",x=1975,y=9.5,label="mean",
           colour="#00664D",fontface="bold",size=5)+
  theme_minimal()+
  theme(plot.background=element_rect(colour="#2F4858",fill="#2F4858"),
        text=element_text(colour="white"),
        axis.text=element_text(colour="white",size=14),
        axis.title=element_text(size=18),
        panel.grid=element_blank(),
        axis.ticks=element_line(colour="white"),
        axis.line=element_line(colour="white"),
        plot.title=element_text(size=20,face="bold",hjust=0.5),
        plot.subtitle=element_text(size=18,hjust=0.5,lineheight=1.2),
        plot.caption=element_text(size=10),
        plot.margin=unit(c(1,1,1,1),"cm"))


【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k