数据可视化期末报告

Author

221527101关子桃

1 报告要求

  • 期末实验报告由5章节5个图形组成,每个章节需要作一个图形。

  • 每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。

  • 案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。

  • 每个章节的数据集合需要通过datatable 函数展示,并简要解释数据来源和变量意义。

  • 每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。

  • 渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档“8、期末报告” 列中。

  • 评分标准:

    • 每章节图形各20分

    • 能有效输出图形和合理解释75%

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

library(data.table)
library(DT)
library(dplyr)
library(ggplot2)
library(forcats)
library(RColorBrewer)
data=fread("在线课程数据1.csv")
DT::datatable(data, rownames = FALSE)

2.2 图形1——环形图

library(gridExtra)
library(ggiraphExtra)

p1<-ggDonut(data,aes(donuts=课程类目,count=报名人数),
  labelposition=1,labelsize=2.5,            
  xmin=2,xmax=4,                             
  title="报名人数占比图")    
grid.arrange(p1)               

  • 图形解读:
  • 数据科学占比最高(37.7%),其次是人工智能(33.1%),两者合计超过70%,显示这两个领域是当前学习的热门方向。商务课程占比最低(7.4%),可能与课程内容实用性或市场需求相关。市场营销占比21.7%,处于中间位置,反映稳定但非爆发性需求。
  • 由此提出对未来的课程销售建议,数据科学和人工智能的报名人数占比高,且数据科学的完课率和考试成绩均领先,建议加强资源倾斜,优化课程内容、增加进阶模块。人工智能的完课率较低,需排查原因,是否因为课程难度大、学员基础不足。商务课程需改进报名人数和成绩均垫底,建议重新评估课程定位,是否与市场需求脱节?是否需要增加实战案例或行业合作提升吸引力?教学质量提升空间,所有课程评价均未超过3.3分(满分5分),需收集学员反馈,针对性改进,加强讲师培训或引入行业专家,优化课程互动性与实用性。市场营销课程潜力报名人数和成绩中等,但评价相对较高(3.2分),可尝试扩大宣传或细分领域来提升占比。
  • 数据科学和人工智能是核心增长点,但需解决人工智能的完课率问题;商务课程需彻底改革;整体教学质量(尤其学员满意度)是未来优化重点。

3 数据分布可视化

3.1 案例数据解释与展示

library(tidyr)
library(gridExtra)
library(ggiraphExtra)

data1=fread("在线课程数据.csv")
df <- data1 |>  select(完课率,考试平均得分) |> 
  gather(完课率,考试平均得分,key=指标,value=指标值)   # 融合数据

DT::datatable(df,rownames = FALSE)

3.2 图形2——叠加直方图和镜像直方图

library(tidyverse)
library(ggplot2)
library(aplpack)
# 图(a)叠加直方图
p1<-ggplot(df)+aes(x=指标值,y=..density..,fill=指标)+
  geom_histogram(position="identity",color="gray60",alpha=0.5)+
  theme(legend.position=c(0.25,0.8),
       legend.background=element_rect(fill="grey90",color="grey"))+
  ggtitle("(a) 完课率和考试平均得分的叠加直方图")

# 图(b)镜像直方图
p2<-ggplot(data1)+aes(x=x)+
   geom_histogram(aes(x=完课率,y=..density..),color="grey50",fill="red",alpha=0.3)+
   geom_label(aes(x=100,y=0.0075),label="完课率",color="red")+ 
   geom_histogram(aes(x=考试平均得分,y=-..density..),color="grey50",fill="blue",alpha=0.3)+ 
   geom_label(aes(x=100,y=-0.0065),label="考试平均得分",color="blue")+ 
   xlab("指标值")+ggtitle("(b) 完课率和考试平均得分的镜像直方图")

gridExtra::grid.arrange(p1,p2,ncol=2) 

  • 图形解读:

  • 图 (a): 完课率和考试平均得分的叠加直方图

  • X 轴:课程类目(人工智能、商务课程、数据科学、市场营销)。

  • Y 轴:数值范围(0-100),同时显示 完课率(%) 和 考试平均得分。

  • 由图得,数据科学 的完课率(95.5%)和考试得分(68.3)均最高,反映课程设计合理或学员积极性高。人工智能 完课率(76.3%)较低,但考试得分(65.8)尚可,可能课程难度较高导致中途退出。商务课程 两项指标均最低(完课率83.4%,得分65.5),需重点关注课程内容或教学方式。

    总结:
    完课率与考试成绩呈 弱正相关(如数据科学两者均高,商务课程均低),但人工智能例外(低完课率但中等成绩),说明 课程难度 可能影响持续性。 我们应当对 低完课率课程(如人工智能)优化学习路径,增加阶段性激励。

  • 图 (b): 完课率和考试平均得分的镜像直方图

  • 左半部分(正密度):完课率分布,峰值在80%-100%。

  • 右半部分(负密度):考试得分分布,集中在60-80分区间。

  • 由图得,完课率分布右偏(多数课程>80%),而考试得分左偏(多数<80分),说明:学员能坚持完成课程(高完课率),但考试表现未达优秀(普遍中等分数)。商务课程的考试得分密度最低(最左侧),印证其教学效果较差。

    总结:
    当前课程可能 重参与轻掌握,需加强 学习效果评估,尝试增加实践环节。考试难度或评分标准可能需调整,因为由上图可知高分区间稀缺

    3.2.1 图像解读与数据分析

    3.2.1.1 1. 图 (a): 完课率和考试平均得分的叠加直方图

    • X 轴:课程类目(如人工智能、数据科学等)。
    • Y 轴:数值范围(0-100),同时显示 完课率(%)考试平均得分
    • 关键观察
      • 数据科学 的完课率(95.5%)和考试得分(68.3)均最高,反映课程设计合理或学员积极性高。
      • 人工智能 完课率(76.3%)较低,但考试得分(65.8)尚可,可能课程难度较高导致中途退出。
      • 商务课程 两项指标均最低(完课率83.4%,得分65.5),需重点关注课程内容或教学方式。

    观点

    • 完课率与考试成绩呈 弱正相关(如数据科学两者均高,商务课程均低),但人工智能例外(低完课率但中等成绩),说明 课程难度 可能影响持续性。
    • 建议对 低完课率课程(如人工智能)优化学习路径,增加阶段性激励。

    3.2.1.2 2. 图 (b): 完课率和考试平均得分的镜像直方图

    • 左半部分(正密度):完课率分布,峰值在80%-100%。
    • 右半部分(负密度):考试得分分布,集中在60-80分区间。
    • 关键观察
      • 完课率分布 右偏(多数课程>80%),而考试得分 左偏(多数<80分),说明:
        • 学员能坚持完成课程(高完课率),但 考试表现未达优秀(普遍中等分数)。
      • 商务课程的考试得分密度最低(最左侧),印证其教学效果较差。

    观点

    • 当前课程可能 重参与轻掌握,需加强 学习效果评估(如增加实践环节)。
    • 考试难度或评分标准可能需调整(如高分区间稀缺)。

    3.2.2 综合建议

    1. 优化课程难度梯度
      • 人工智能课程可拆分基础/进阶模块,降低初期退出率。
      • 商务课程需重构内容,提升实用性与吸引力。
    2. 加强学习效果追踪
      • 引入 阶段性测试项目考核,避免“高完课率但低掌握度”。
    3. 提升考试区分度
      • 分析低分集中原因(如题目难度、评分标准),确保成绩能真实反映学习成果。
    4. 数据驱动改进
      • 对完课率高但得分低的课程(如市场营销),调研学员反馈,定位教学短板。

    总结:完课率与考试成绩的对比揭示了课程设计中的 参与度-掌握度失衡,需针对性优化教学策略与考核机制。

    3.2.3 图像解读与数据分析

    3.2.3.1 1. 图 (a): 完课率和考试平均得分的叠加直方图

    • X 轴:课程类目(如人工智能、数据科学等)。
    • Y 轴:数值范围(0-100),同时显示 完课率(%)考试平均得分
    • 关键观察
      • 数据科学 的完课率(95.5%)和考试得分(68.3)均最高,反映课程设计合理或学员积极性高。
      • 人工智能 完课率(76.3%)较低,但考试得分(65.8)尚可,可能课程难度较高导致中途退出。
      • 商务课程 两项指标均最低(完课率83.4%,得分65.5),需重点关注课程内容或教学方式。

    观点

    • 完课率与考试成绩呈 弱正相关(如数据科学两者均高,商务课程均低),但人工智能例外(低完课率但中等成绩),说明 课程难度 可能影响持续性。
    • 建议对 低完课率课程(如人工智能)优化学习路径,增加阶段性激励。

    3.2.3.2 2. 图 (b): 完课率和考试平均得分的镜像直方图

    • 左半部分(正密度):完课率分布,峰值在80%-100%。
    • 右半部分(负密度):考试得分分布,集中在60-80分区间。
    • 关键观察
      • 完课率分布 右偏(多数课程>80%),而考试得分 左偏(多数<80分),说明:
        • 学员能坚持完成课程(高完课率),但 考试表现未达优秀(普遍中等分数)。
      • 商务课程的考试得分密度最低(最左侧),印证其教学效果较差。

    观点

    • 当前课程可能 重参与轻掌握,需加强 学习效果评估(如增加实践环节)。
    • 考试难度或评分标准可能需调整(如高分区间稀缺)。

    3.2.4 综合建议

    1. 优化课程难度梯度
      • 人工智能课程可拆分基础/进阶模块,降低初期退出率。
      • 商务课程需重构内容,提升实用性与吸引力。
    2. 加强学习效果追踪
      • 引入 阶段性测试项目考核,避免“高完课率但低掌握度”。
    3. 提升考试区分度
      • 分析低分集中原因(如题目难度、评分标准),确保成绩能真实反映学习成果。
    4. 数据驱动改进
      • 对完课率高但得分低的课程(如市场营销),调研学员反馈,定位教学短板。

    总结:完课率与考试成绩的对比揭示了课程设计中的 参与度-掌握度失衡,需针对性优化教学策略与考核机制。

    3.2.5 综合建议

    1. 优化课程难度梯度:人工智能课程可拆分基础/进阶模块,降低初期退出率。商务课程需重构内容,提升实用性与吸引力。
    2. 加强学习效果追踪:引入 阶段性测试 或 项目考核,避免“高完课率但低掌握度”。
    3. 提升考试区分度:分析低分集中原因(如题目难度、评分标准),确保成绩能真实反映学习成果。
    4. 数据驱动改进:对完课率高但得分低的课程(如市场营销),调研学员反馈,定位教学短板。

    总结:完课率与考试成绩的对比揭示了课程设计中的 参与度-掌握度失衡,需针对性优化教学策略与考核机制。

4 变量关系可视化

4.1 案例数据解释与展示

library(scatterpie)
data2=fread("在线课程数据.csv")
datatable(data2,rownames = FALSE)

4.2 图形3——散点图和置信带

df5<-data2

p1<-ggplot(data=df5,aes(x=完课率,y=考试平均得分))+
    geom_point(shape=21,size=1.5,fill="deepskyblue")+ 
    geom_rug(color="steelblue")+              
    stat_smooth(method=lm,color="red",fill="blue",size=0.8)+  
    geom_point(aes(x=mean(完课率),y=mean(考试平均得分)),shape=21,fill="yellow",size=4)+  
    ggtitle("(a) 散点图+地毯图+线性拟合")

grid.arrange(p1) # 按2列组合图形p1和p2

  • 图形解读:

  • 散点图:展示 完课率(X轴) 与 考试平均得分(Y轴) 的关系。

  • 地毯图:在X轴和Y轴边缘显示数据分布密度。

  • 线性拟合线:表示两变量的趋势关系。

  • 由图:X轴右侧密度高,完课率集中在 70%-100%,X轴右侧密度高,考试得分多在 60-80分。但存在少数 低完课率(<70%)但高得分(>80分) 的异常点,可能是自学能力强的学员或课程设计特殊。

  • 趋势线:呈现 轻微正相关,即完课率越高,考试得分倾向于提升,但相关性较弱(斜率平缓)。高分(>80分)对应完课率均超过80%,说明持续学习对成绩有促进作用。

  • 总结:

    1. 完课率与成绩的有限正相关:高完课率课程(数据科学95.5%)通常成绩较好,但部分课程(人工智能76.3%完课率)成绩中等,说明完课率并非成绩的唯一决定因素,可能受课程难度、教学质量影响。
    2. 异常点分析:低完课率高得分的点:需检查是否为小众课程或学员背景差异,是否有基础。高完课率低得分的点:可能反映课程考核严格或教学内容与考试脱节。
    3. 教学改进方向:强化中低完课率课程:针对完课率70%-80%的课程(人工智能),优化学习体验,分段任务、即时反馈,提升持续性;调整考核标准:对高完课率但得分普通的课程(如市场营销),评估考试是否过于简单或偏离重点。
    4. 深入分析异常课程:统计低完课率高得分学员的背景,判断是否需要分班教学。
    5. 结合定性反馈:通过学员调研,定位高完课率但低成绩课程的具体问题,如内容难度、讲师表达等。

    总结:完课率与考试成绩的关系揭示出学习持续性对成绩的边际效益递减,需针对不同课程特性优化教学与考核设计。

4.2.1

5 样本相似性可视化

5.1 案例数据解释与展示

data3=fread("在线课程数据4.csv")
df2 <- data3 |> gather(完课率:考试平均得分,key=各项指标,value=指标值) |> 
  mutate(各项指标=fct_inorder(各项指标))
datatable(df2,rownames = FALSE)

5.2 图形4——ggplot平行坐标图——以个案分类

# 绘制平行坐标图
ggplot(df2,aes(x=各项指标,y=指标值,group=课程类目,color=课程类目))+
  geom_line(linewidth=0.5)+   # 绘制折线
  geom_point(shape=21,size=1.5,fill="gray50")+          # 绘制点
  theme(legend.position=c(0.93,0.76),
        legend.text=element_text(size=7,color="blue4"),
        legend.direction="horizontal",                # 设置图例位置和摆放方向
        legend.background=element_rect(fill="grey90",color="grey"))+
  guides(color=guide_legend(nrow=4,title=NULL))+     # 设置图例摆放方式(8行,去掉图例标题)
  scale_x_discrete(labels=function(x) str_wrap(x,width=8)) # 设置x轴标签宽度

  • 图形解读:

  • 数据科学:完课率最高(接近90°轴,推测约95%)。考试平均得分较高(约70°轴,推测68-70分)。课程评价中等(介于70°-80°之间)。所以,学员参与度高且成绩好,但满意度有提升空间。

  • 人工智能:完课率中等(约70°-80°轴,推测76%)。考试平均得分中等(约65°轴)。课程评价较低(接近60°轴)。所以,课程难度可能影响完成度和满意度。

  • 市场营销:完课率较高(80°轴以上,推测81%)。考试平均得分与数据科学接近(70°轴)。课程评价中等偏上(75°-85°轴)。所以平衡性较好,但缺乏突出优势。

  • 商务课程:完课率中等(略高于70°轴,推测83%)。考试平均得分最低(60°轴附近)。课程评价最低(60°轴以下)。所以,课程内容或教学方式需改进。

  • 总结:

  • 1.数据科学的“高完课率-低评价”矛盾:学员能坚持完成课程且成绩好,但满意度不高,可能原因:课程内容枯燥或缺乏互动性。考核严格导致压力大。建议:增加趣味性案例或调整评分方式。

  • 2.智能的“低评价-中等成绩”问题:反映课程设计可能脱离实际需求,或技术难度过高。建议:分阶段教学(如基础/进阶),并收集学员反馈优化内容。

  • 3.商务课程全面落后:三项指标均垫底,需彻底改革:引入行业专家合作开发实用内容。增加实战项目比例。

  • 4.市场营销的稳定性:表现均衡但无亮点,可挖掘细分领域提升吸引力。

  • 针对性课程改进:对低评价课程(如人工智能、商务课程)开展学员调研。设立“课程优化试点”,如商务课程引入企业案例教学。

  • 建立动态评估机制:定期跟踪指标变化,及时调整教学策略。

  • 商务课程紧急改进:开展学员访谈,明确是内容问题,是否枯燥还是教学问题,讲师水平。

    总结:考试得分未能反映的实操能力差异,需结合两指标综合评估课程效果,避免“高分低能”。

6 时间序列可视化

6.1 案例数据解释与展示

library(dygraphs)
library(xts)
library(tidyverse)
library(lubridate)
library(plotly)
library(xts)

data=fread("在线课程数据5.csv")

clean_data <- data %>%
  mutate(日期 = ymd(日期)) %>%
  filter(!is.na(报名人数)) %>%
  filter(日期 >= as.Date("2020-01-01") & 日期 <= as.Date("2020-04-30")) %>%
  arrange(日期)

6.2 图形5——时间序列动态交互图

plot_ly(
  data = clean_data,
  x = ~日期,
  y = ~报名人数,
  type = 'scatter',
  mode = 'lines+markers',
  line = list(color = '#3498db', width = 2),
  marker = list(
    color = '#3498db',
    size = 8,
    line = list(color = 'white', width = 1)
  ),
  hoverinfo = 'text',
  text = ~paste(
    "日期:", 日期, "<br>",
    "报名人数:", 报名人数, "<br>",
    "课程:", 课程类目, "<br>",
    "完课率:", 完课率, "%<br>",
    "课程评价:", `课程评价(5分制)`, "/5"
  )
) %>%
  layout(
    title = "2020年1-4月在线课程报名人数趋势",
    xaxis = list(
      title = "日期",
      range = c("2020-01-01", "2020-04-30"),
      rangeselector = list(
        buttons = list(
          list(count = 1, label = "1月", step = "month", stepmode = "backward"),
          list(count = 3, label = "3月", step = "month", stepmode = "backward"),
          list(step = "all")
        )
      ),
      rangeslider = list(type = "date")
    ),
    yaxis = list(title = "报名人数"),
    hovermode = "x unified",
    showlegend = FALSE
  )
  • 图形解读:

  • X轴:日期(1月5日至4月26日,间隔约2周)。

  • Y轴:报名人数(范围2000-5000人)。

  • 代表整体趋势。

  • 整体趋势分析如下:

  • 整体波动特征:1月至2月初:报名人数从约2500人稳步上升至3000人以上(可能受新年学习计划推动)。2月中旬至3月初:出现明显峰值(约4500人),可能与春季开学季或课程促销活动相关。3月中旬后:人数回落至3000-3500人区间,4月趋于稳定。

  • 异常点与特殊时段:

    1. 1月5日:起始点约2500人,为最低谷。
    2. 3月1日:达到峰值(近5000人),之后快速下降。
    3. 4月:数据波动平缓,可能反映市场趋于饱和或活动结束。
  • 趋势分析

    1. 季节性影响因素显著
    2. 开学季效应:3月初的峰值符合教育行业规律,学生返校后学习需求激增。
    3. 节假日干扰:1月初的低谷可能与元旦假期相关,2月春节前后数据未明显下降,说明在线教育不受传统假期限制。
    4. 营销活动效果分析:若3月峰值对应促销活动或新课发布,说明活动短期拉动效果强,但留存不足而导致后续快速回落。应当延长活动周期或设计后续转化策略,出台相应优惠。
    5. 4月稳定性隐含问题:报名人数未持续增长,可能反映课程吸引力瓶颈:需更新内容或拓宽品类。或竞争加剧:同期其他平台分流用户。
  • 建议

    1. 强化季节性运营:提前规划3月开学季营销,可以联合高校、企业定制课程。针对1月低谷推出“新年学习计划”激励。
    2. 优化活动设计:分析3月峰值后流失原因,是否因为课程质量、价格敏感度,改进留存策略。试行“报名人数-完课率”联动促销,发放优惠券或购物卡。
    3. 数据深化分析:拆分报名课程类型,识别增长主力。对比2021年同期数据,判断趋势是否可持续。
    4. 报名人数呈现典型的季节性波动,需通过精准营销和课程迭代平衡短期爆发与长期增长,避免“大起大落”。