library(DT)
<-read.csv("E:/数据可视化/chap03/data2_1.csv")
data2_1::datatable(head(data2_1),rownames = FALSE) DT
数据可视化期末报告
1 报告要求
期末实验报告由5章节5个图形组成,每个章节需要作一个图形。
每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。
案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。
每个章节的数据集合需要通过
datatable
函数展示,并简要解释数据来源和变量意义。每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。
渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档
“8、期末报告”
列中。评分标准:
每章节图形各20分
能有效输出图形和合理解释75%
数据独特性强10%
图形个性化强15%
2 类别数据可视化
2.1 案例数据解释与展示
- 数据来源于第三章,包含50名学生的信息,记录了他们的性别,专业,以及R语言和Python语言的考试成绩。
2.2 图形1——普通条形图
library(ggplot2)
library(gridExtra)
# 设置图形主题(可根据需设置或省略)
<-theme(plot.title=element_text(size="11"), # 设置主标题字体大小
mythemeaxis.title=element_text(size=10), # 设置坐标轴标签字体大小
axis.text=element_text(size=9), # 设置坐标轴刻度字体大小
legend.position="none") # 删除图例
# 绘制图形p1、p2
<-ggplot(data2_1,aes(x=性别,fill=性别))+
p1geom_bar(width=0.8)+ # 绘制条形图并设置条的宽度
ylim(0,30)+ # 设置y轴范围
geom_text(stat="count", aes(label=..count..), hjust=1.2, color="white", size=3) +
coord_flip()+ # 坐标轴互换(水平摆放条)
ylab("人数")+ # 设置y轴标签
+ # 使用设置的主题
mythemeggtitle("(a) 水平条形图") # 添加标题
<-ggplot(data2_1,aes(x=专业,fill=专业))+
p2geom_text(stat="count", aes(label=..count..), vjust=-0.5, size=3) + # 标签在条上方
geom_bar(width=0.8)+mytheme+ylab("人数")+ggtitle("(b) 垂直条形图")
grid.arrange(p1,p2,layout_matrix=rbind(c(1,2)))
- 图形解读:根据水平条形图,我们可以直观都看出女生人数比男生人数多;而垂直条形图可以看出,专业为管理的人数最多有22人,其次是金融有16人,最后是会计有12人。两幅图的总人数相等。
3 数据分布可视化
3.1 案例数据解释与展示
- 数据来源于广金图书馆中国年度数据库(年度数据版),记录了2004-2014年北京市客运量和货运量的数据,包括铁路、公路、民航三种运输方式。
<-read.csv("E:/数据可视化/期末报告/北京市客运量和货运量数据.csv", fileEncoding = "GBK")
data::datatable(data,rownames = FALSE) DT
3.2 图形2——对数变换的箱线图
library(ggplot2)
library(dplyr)
library(tidyr)
library(forcats)
library(RColorBrewer)
<-theme(plot.title=element_text(size="11"), # 设置主标题字体大小
mythemeaxis.title=element_text(size=10), # 设置坐标轴标签字体大小
axis.text=element_text(size=9),
legend.text=element_text(size="8")) # 设置图例字体大小
<-data |> select(-c(1)) |>
dfgather(everything(),key=指标,value=指标值) |>
mutate(指标=fct_inorder(指标))
<-RColorBrewer::brewer.pal(6,"Set2") # 设置离散型调色板
paletteggplot(df,aes(x=指标,y=log10(指标值)))+
geom_boxplot(fill=palette)+ # 绘制箱线图并设置填充颜色
stat_summary(fun="mean",geom="point",shape=21,size=2.5,fill="white")
- 图形解读:根据图形,货运量中:民航货运量的log值最高,说明其原始数值比其他指标大1-2个数量级,其次是公路货运量,最小是铁路货运量。客运量中:公路客运量最高,箱体更宽,说明年度波动最剧烈,铁路客运量与铁路客运量与铁路客运量位置接近,但铁路客运量的箱体更窄(年度波动较小,运营最稳定)。
4 变量关系可视化
4.1 案例数据解释与展示
- 数据来源于ggplot2中的mpg数据,包含1999年-2008年美国汽车的燃油经营性数据,displ(发动机排量),hwy(高速油耗),cyl(气缸数),cty(城市油耗),manufacturer(汽车制造商)
library(ggplot2)
::datatable(mpg,rownames = FALSE) DT
4.2 图形3——气泡图
<- mpg
df ggplot(df,aes(x=displ,y=hwy,color=class))+
geom_point(aes(size=cyl),alpha=0.5)+ # 气泡大小=cyl
scale_size(range=c(1,7))+ # 设置点的大小
theme(panel.grid.minor=element_blank())+ # 移除次网格线
theme(plot.title=element_text(size=12))+ # 设置标题字体大小
theme(legend.text=element_text(size=9,color="blue"))+ # 设置图例字体大小和颜色
scale_color_brewer(palette = "Set1") + # 使用离散调色板
guides(size="none")+
annotate("text",x=2,y=45,label="气泡大小 = cyl",size=3)# 添加注释文本
- 图形解读:displ(发动机排量),hwy(高速油耗),cyl(气缸数),class(汽车类型),气泡越大气缸数也大。根据图形可以看出,排量和油耗呈负相关,SUV车型集中在高排量低油耗区域。
5 样本相似性可视化
5.1 案例数据解释与展示
- 数据来源于ggplot2中的mpg数据,包含1999年-2008年美国汽车的燃油经营性数据,displ(发动机排量),hwy(高速油耗),cyl(气缸数),cty(城市油耗),manufacturer(汽车制造商)
library(ggplot2)
::datatable(mpg,rownames = FALSE) DT
5.2 图形4——星图
library(tibble)
<-mpg%>%
star_dataselect(manufacturer, model, displ, hwy, cty, cyl) %>% # 选择关键变量
group_by(manufacturer) %>% # 按厂商分组
summarise(across(c(displ, hwy, cty, cyl), mean)) %>% # 计算均值
column_to_rownames("manufacturer") %>% # 将厂商设为行名
as.matrix()
stars(star_data,
full=TRUE, # 绘制出满圆
scale=TRUE, # 将数据缩放到[0,1]的范围
nrow=4, # 4行布局
len=0.7, # 设置半径或线段长度的比例
frame.plot=TRUE, # 添加边框
draw.segments=TRUE,key.loc=c(9,2), # 绘制圆弧图,并设置位置
mar=c(0.5,0.1,0.1,0.1), # 设置图形边界
cex=0.8) # 设置标签字体大小
- 图形解读:displ(发动机排量),hwy(高速油耗),cyl(气缸数),cty(城市油耗),manufacturer(汽车制造商),生成的星图直观呈现了各大汽车制造商的技术特征,可以看出chevrolet的排量和气缸数扇形显著突出,这种大排量车型专注动力性能,牺牲燃油经济性,为性能型汽车。而Honda车型的汽车高速油耗和城市油耗占比较大,优化燃油效率,为经济性汽车。
6 时间序列可视化
6.1 案例数据解释与展示
- 数据来源于广金图书馆中国进度数据库,广州市按行业分的固定资产投资情况,提取了2024年2-12月的投资情况,分别选用了工业、制造业、建筑业、交通运输业和住宿餐饮业固定资产投资占比情况。
library(readxl)
<-read_excel("E:/数据可视化/期末报告/广州市固定资产投资情况.xlsx")
data::datatable(data,rownames = FALSE) DT
6.2 图形5——折线图
library(dplyr)
library(lubridate)
<- data %>%
data mutate(时间 = as.Date(时间)) # 自动忽略时间部分
<-data |> select(时间,2:7) |>
dffilter(year(时间)==2024) |>
gather(2:7,key=指标,value=增长率)
stopifnot("时间列必须是Date类型" = inherits(df$时间, "Date"))
# 绘制折线图
<- ggplot(df,aes(x=时间,y=增长率,color=指标))+ # 设置x轴、y轴和线的颜色
p geom_line(size=0.45)+ # 绘制折线图
theme(legend.position="none", # 删除图例
axis.text.x=element_text(size=7,angle=90,hjust=1,vjust=1))+# 设置x轴标签角度
theme(panel.grid.minor.x=element_blank(), # 去掉x轴次网格线
panel.grid.minor.y=element_blank())+ # 去掉y轴次网格线
scale_x_date(expand=c(0,0),date_breaks="1 month",date_labels="%b")+# 设置x轴间隔为1个月
facet_wrap(~指标,ncol=3,scale="free")+ # 按指标分面,并单独设置各分面图的y轴刻度
labs(
title = "2024年广州市固定资产投资增长率趋势",
x = "月份",
y = "同比增长率"
) p
- 图形解读:可以看出2024年第二产业(如制造业),投资持续低迷,全年负增长。而第三产业(如住宿餐饮业)等服务业呈季节性波动,年中6月和年末12月出现投资高峰。出现两极分化,第三产业与其他投资高速增长,基建同第二产业持续收缩,可能与政府宏观调控有关。