可视化系列汇总——群体关系

引言

在进行数据分析时,免不了对结果进行可视化。那么,什么样的图形才最适合自己的数据呢?一个有效的图形应具备以下特点:

  • 能正确传递信息,而不会产生歧义;
  • 样式简单,但是易于理解;
  • 添加的图形美学应辅助理解信息;
  • 图形上不应出现冗余无用的信息。

本系列推文,小编将汇总可视化中常用 7 大类型图形,供读者参考。每类制作成一篇推文,主要参考资料为:Top 50 ggplot2 Visualizations。其他类似功能网站,资料包括:

  1. 庄闪闪的可视化笔记——常用图形

  2. R Graph Gallery

  3. 《R 语言教程》——ggplot 的各种图形

系列目录

本文主要介绍第七部分: 群体关系图形。

加载数据集

使用 ggplot2 包中自带数据集作为示例数据集。

library(ggplot2)
library(plotrix)
data("midwest", package = "ggplot2") #加载数据集

midwest 数据集

全局主题设置

全局配色、主题设置。注意,本文使用离散色阶,如果需要使用连续色阶,则需要重写。

options(scipen=999)  # 关掉像 1e+48 这样的科学符号
# 颜色设置(灰色系列)
cbp1 <- c("#999999", "#E69F00", "#56B4E9", "#009E73",
          "#F0E442", "#0072B2", "#D55E00", "#CC79A7")

# 颜色设置(黑色系列)
cbp2 <- c("#000000", "#E69F00", "#56B4E9", "#009E73",
          "#F0E442", "#0072B2", "#D55E00", "#CC79A7")


ggplot <- function(...) ggplot2::ggplot(...) + 
  scale_color_manual(values = cbp1) +
  scale_fill_manual(values = cbp1) + # 注意: 使用连续色阶时需要重写
  theme_bw()

7 群体关系

7.1 谱系图

library(ggplot2)
library(ggdendro)
theme_set(theme_bw())

hc <- hclust(dist(USArrests), "ave")  # hierarchical clustering
# plot
ggdendrogram(hc, rotate = TRUE, size = 2)

谱系图

7.2 聚类图

可以使用 geom_surround() 来显示不同的簇或组。如果数据集有多个特征,还可以计算主成分,并使用 PC1 和 PC2 作为 X 和 Y 轴绘制散点图。geom_encircle() 可用于框选所需的组。

# devtools::install_github("hrbrmstr/ggalt")
library(ggplot2)
library(ggalt)
library(ggfortify)
theme_set(theme_classic())

# Compute data with principal components ------------------
df <- iris[c(1, 2, 3, 4)]
pca_mod <- prcomp(df)  # compute principal components

# Data frame of principal components ----------------------
df_pc <- data.frame(pca_mod$x, Species=iris$Species)  # dataframe of principal components
df_pc_vir <- df_pc[df_pc$Species == "virginica", ]  # df for 'virginica'
df_pc_set <- df_pc[df_pc$Species == "setosa", ]  # df for 'setosa'
df_pc_ver <- df_pc[df_pc$Species == "versicolor", ]  # df for 'versicolor'
 
# Plot ----------------------------------------------------
ggplot(df_pc, aes(PC1, PC2, col=Species)) + 
  geom_point(aes(shape=Species), size=2) +   # draw points
  labs(title="Iris Clustering", 
       subtitle="With principal components PC1 and PC2 as X and Y axis",
       caption="Source: Iris") + 
  coord_cartesian(xlim = 1.2 * c(min(df_pc$PC1), max(df_pc$PC1)), 
                  ylim = 1.2 * c(min(df_pc$PC2), max(df_pc$PC2))) +   # change axis limits
  geom_encircle(data = df_pc_vir, aes(x=PC1, y=PC2)) +   # draw circles
  geom_encircle(data = df_pc_set, aes(x=PC1, y=PC2)) + 
  geom_encircle(data = df_pc_ver, aes(x=PC1, y=PC2))

聚类图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份关于西安地铁客流量分析的数据可视化课程设计: 1. 课程目标:通过本课程的学习,学生将能够了解数据可视化的基础知识和技术,掌握如何使用数据可视化工具分析和展示西安地铁的客流量数据,提高学生的数据分析和可视化能力。 2. 课程内容: (1)数据类型和格式:介绍常见的数据类型和格式,包括文本、表格、图像、JSON等。 (2)数据准备和清洗:讲解如何准备和清洗数据,包括数据获取、数据预处理、数据清洗等。 (3)可视化工具和技术:介绍常见的数据可视化工具和技术,包括Python的Matplotlib、Seaborn、Plotly等,以及Tableau、PowerBI等商业工具。 (4)数据分析和可视化案例:通过具体的案例分析,让学生了解如何使用数据可视化工具分析和展示西安地铁的客流量数据,例如客流量的时间分布、空间分布、高峰期客流量分析等。 3. 教学方法:采用讲解、案例分析、实践操作、小组讨论等教学方法,以满足学生的不同需求和学习风格。 4. 课程评估:设计实践项目和考试,以检验学生的学习效果和能力。实践项目可以要求学生使用具体的数据可视化工具完成西安地铁客流量数据的分析和展示,考试可以采用选择题、填空题、简答题等形式。 5. 资源准备:准备必要的教学资源,例如PPT、教材、参考书籍、数据集等,以帮助学生更好地理解课程内容和实践操作。数据集可以从公开的数据源中获取,例如西安地铁公司官网、国家数据等。 6. 实践项目:设计实践项目,让学生使用具体的数据可视化工具完成西安地铁客流量数据的分析和展示。可以要求学生在特定的时间段内,收集某一地铁站的客流量数据,并使用数据可视化工具展示数据分析结果,例如时间序列图、热力图、地图等。 以上是一份关于西安地铁客流量分析的数据可视化课程设计,希望能对您有所帮助。如果您需要更加具体的帮助或者有其他问题,欢迎随时向我提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值