数据可视化期末报告

Author

221527205 matingyu

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 《superheroes》来自于kaggle数据网,记录了多个影视作品中超级英雄的详细数据,包括角色名称、所属宇宙、阵营、能力数值等等,可以横向比较不同宇宙、阵营角色的能力特征与人物表现。
#加载必要的包
library(ggplot2)
library(dplyr)
library(tidyr)
library(gridExtra)

heroes <- read.csv("E:/可视化期末报告/superheroes.csv")
heroes
                   Name Universe Alignment Strength Speed Intelligence
1           Iron Man #1   Marvel Anti-Hero        1     1            2
2             Batman #1       DC Anti-Hero        5     4            6
3              Joker #1   Marvel      Hero        3     9            2
4               Thor #1   Marvel      Hero        1     6            2
5             Thanos #1   Marvel   Villain        4     3            2
6       Wonder Woman #1       DC      Hero        5     1           NA
7         Spider-Man #1   Marvel Anti-Hero        7    NA            2
8      Green Lantern #1   Marvel Anti-Hero        1     9            4
9           Deadpool #1   Marvel      Hero        3     3            9
10     Black Panther #1       DC Anti-Hero        2     9            6
11              Loki #1   Marvel Anti-Hero        9     7            1
12   Captain America #1   Marvel      Hero       10     4            8
13          Superman #1   Marvel      Hero        6     3            7
14      Harley Quinn #1   Marvel Anti-Hero       10    10           10
15             Flash #1       DC Anti-Hero        3     5            3
16    Doctor Strange #1   Marvel Anti-Hero       NA     5            1
17              Hulk #1       DC   Villain        8    NA            5
18           Aquaman #1       DC   Villain        2     9            4
19          Catwoman #1       DC   Villain        6     4           10
20         Wolverine #1   Marvel      Hero        7     5            8
21          Iron Man #2       DC   Villain        2     4            1
22            Batman #2   Marvel      Hero       10     5           10
23             Joker #2       DC      Hero        2     7            1
24              Thor #2       DC   Villain       10    NA            4
25            Thanos #2       DC   Villain        1     7            8
26      Wonder Woman #2       DC   Villain        8     5            5
27        Spider-Man #2       DC Anti-Hero        1    NA            2
28     Green Lantern #2       DC   Villain        9    10            6
29          Deadpool #2       DC Anti-Hero        6     7            5
30     Black Panther #2       DC      Hero        7    10           NA
31              Loki #2   Marvel Anti-Hero       10     5            3
32   Captain America #2   Marvel   Villain        7     3            9
33          Superman #2       DC      Hero       10     7            7
34      Harley Quinn #2       DC      Hero        3     2            7
35             Flash #2       DC      Hero        2     9            6
36    Doctor Strange #2   Marvel Anti-Hero        9    10            8
37              Hulk #2       DC   Villain        8    10            4
38           Aquaman #2   Marvel      Hero       10     1            8
39          Catwoman #2   Marvel      Hero        7     6            4
40         Wolverine #2   Marvel      Hero        9     7            8
41          Iron Man #3   Marvel Anti-Hero        4     8            9
42            Batman #3   Marvel Anti-Hero        4    10            3
43             Joker #3       DC   Villain       NA     9            3
44              Thor #3       DC Anti-Hero        8     2            2
45            Thanos #3       DC      Hero        3    10           10
46      Wonder Woman #3       DC   Villain        7     2            3
47        Spider-Man #3       DC      Hero       NA     5            3
48     Green Lantern #3   Marvel      Hero        2     5            5
49          Deadpool #3       DC Anti-Hero        7     6            5
50     Black Panther #3       DC   Villain        6     3            2
51              Loki #3   Marvel Anti-Hero        3    NA           10
52   Captain America #3       DC Anti-Hero        9     1            6
53          Superman #3   Marvel   Villain       10     6            5
54      Harley Quinn #3       DC      Hero        6     4            6
55             Flash #3   Marvel      Hero       10     1            1
56    Doctor Strange #3       DC   Villain       10     7            5
57              Hulk #3       DC      Hero        6     9            9
58           Aquaman #3   Marvel   Villain        1     4           10
59          Catwoman #3   Marvel   Villain        4     4           NA
60         Wolverine #3   Marvel Anti-Hero       10     6            1
61          Iron Man #4   Marvel   Villain        6    NA           10
62            Batman #4   Marvel Anti-Hero        6     6            9
63             Joker #4   Marvel      Hero        5     7           10
64              Thor #4   Marvel      Hero        1    10            9
65            Thanos #4   Marvel      Hero       NA    10            9
66      Wonder Woman #4       DC      Hero        5     3            6
67        Spider-Man #4       DC Anti-Hero        5     7            8
68     Green Lantern #4   Marvel      Hero        7     3            1
69          Deadpool #4       DC   Villain        4     2           10
70     Black Panther #4       DC   Villain        6    10            4
71              Loki #4       DC   Villain        4     4            1
72   Captain America #4       DC Anti-Hero        3     8            8
73          Superman #4   Marvel      Hero        7     9            1
74      Harley Quinn #4       DC      Hero        8     7            3
75             Flash #4   Marvel      Hero        4     1            4
76    Doctor Strange #4       DC Anti-Hero        2     3            8
77              Hulk #4       DC   Villain       10     9           NA
78           Aquaman #4       DC   Villain        3     1           10
79          Catwoman #4   Marvel      Hero        1     9            7
80         Wolverine #4       DC   Villain        8     8            8
81          Iron Man #5   Marvel   Villain        3     1            2
82            Batman #5       DC Anti-Hero       10     6           10
83             Joker #5   Marvel Anti-Hero        7     5            8
84              Thor #5       DC Anti-Hero       10     6           NA
85            Thanos #5   Marvel Anti-Hero        5    10            7
86      Wonder Woman #5   Marvel      Hero       10     5            3
87        Spider-Man #5       DC Anti-Hero        5     6            7
88     Green Lantern #5   Marvel   Villain        7     5            2
89          Deadpool #5       DC      Hero        9     5           10
90     Black Panther #5       DC   Villain        5     4            6
91              Loki #5       DC   Villain       NA     3            3
92   Captain America #5       DC   Villain       10     3            3
93          Superman #5       DC Anti-Hero       10     4            9
94      Harley Quinn #5       DC Anti-Hero       NA     9            7
95             Flash #5       DC      Hero        2     2            5
96    Doctor Strange #5       DC      Hero        6     9           10
97              Hulk #5       DC Anti-Hero        9     1            7
98           Aquaman #5       DC   Villain        8     1            9
99          Catwoman #5       DC      Hero        5     5            1
100        Wolverine #5   Marvel Anti-Hero        1     6            7
101         Iron Man #6   Marvel Anti-Hero       NA     6            6
102           Batman #6       DC Anti-Hero        5     3           10
103            Joker #6       DC   Villain        6     7            9
104             Thor #6       DC Anti-Hero        7     9            1
105           Thanos #6       DC Anti-Hero        3    10            4
106     Wonder Woman #6       DC Anti-Hero       10     8            9
107       Spider-Man #6       DC Anti-Hero        3     6            4
108    Green Lantern #6       DC      Hero        5     8           10
109         Deadpool #6       DC      Hero       NA     5            3
110    Black Panther #6   Marvel Anti-Hero        9     8            9
111             Loki #6       DC   Villain        5    10            2
112  Captain America #6   Marvel      Hero        1     4            4
113         Superman #6       DC Anti-Hero        4    10            6
114     Harley Quinn #6       DC      Hero        5     8            2
115            Flash #6   Marvel      Hero       10    NA            8
116   Doctor Strange #6       DC   Villain       10     2            8
117             Hulk #6   Marvel Anti-Hero        5     5            1
118          Aquaman #6       DC Anti-Hero        7     9            3
119         Catwoman #6       DC   Villain        4     4           10
120        Wolverine #6   Marvel   Villain        1     6            9
121         Iron Man #7       DC Anti-Hero        5     1            5
122           Batman #7   Marvel Anti-Hero        7     9            6
123            Joker #7       DC   Villain       10     1            4
124             Thor #7   Marvel      Hero       10     5           10
125           Thanos #7   Marvel      Hero        6     4            2
126     Wonder Woman #7       DC   Villain        5     3            8
127       Spider-Man #7       DC      Hero        4     6            6
128    Green Lantern #7   Marvel   Villain        2     2            5
129         Deadpool #7       DC      Hero        4     3            9
130    Black Panther #7       DC      Hero       10     5            1
131             Loki #7       DC Anti-Hero       10     9            5
132  Captain America #7   Marvel Anti-Hero        3     2            6
133         Superman #7   Marvel      Hero       10    10            5
134     Harley Quinn #7   Marvel      Hero        1     8            6
135            Flash #7   Marvel Anti-Hero        8     2            6
136   Doctor Strange #7   Marvel Anti-Hero        5     5            7
137             Hulk #7   Marvel Anti-Hero        4     7            4
138          Aquaman #7   Marvel   Villain        8    NA           NA
139         Catwoman #7   Marvel      Hero        7     1            7
140        Wolverine #7   Marvel Anti-Hero        2     6            9
141         Iron Man #8       DC      Hero       NA     1            7
142           Batman #8   Marvel   Villain        4     2            3
143            Joker #8       DC   Villain        8     1            3
144             Thor #8       DC Anti-Hero       NA     5            8
145           Thanos #8       DC   Villain        3    10           NA
146     Wonder Woman #8   Marvel      Hero        1     9            4
147       Spider-Man #8   Marvel Anti-Hero        1     6            8
148    Green Lantern #8   Marvel      Hero        3     1            6
149         Deadpool #8   Marvel      Hero        5     1            2
150    Black Panther #8       DC   Villain        3     2            4
151             Loki #8   Marvel   Villain        1     9            4
152  Captain America #8   Marvel   Villain        1     3            6
153         Superman #8   Marvel   Villain        8     1           NA
154     Harley Quinn #8   Marvel   Villain       10    NA            1
155            Flash #8   Marvel Anti-Hero        2     7            8
156   Doctor Strange #8       DC      Hero        3     6            6
157             Hulk #8   Marvel      Hero        2     1            3
158          Aquaman #8       DC      Hero        3     5            9
159         Catwoman #8   Marvel      Hero        7     5            2
160        Wolverine #8       DC   Villain        1     6            8
161         Iron Man #9   Marvel      Hero       10     3           10
162           Batman #9   Marvel Anti-Hero        8     5            3
163            Joker #9       DC Anti-Hero       10     7            5
164             Thor #9       DC      Hero       10     5            6
165           Thanos #9       DC      Hero       10     5           10
166     Wonder Woman #9   Marvel Anti-Hero        2     5            6
167       Spider-Man #9       DC Anti-Hero        3    10            4
168    Green Lantern #9   Marvel   Villain        9    10            3
169         Deadpool #9   Marvel Anti-Hero        7     3            4
170    Black Panther #9       DC   Villain        4     1            1
171             Loki #9       DC   Villain       10     5            4
172  Captain America #9   Marvel   Villain        5     9            1
173         Superman #9   Marvel   Villain        2     1           NA
174     Harley Quinn #9       DC   Villain        8     3           10
175            Flash #9       DC      Hero        4     4            6
176   Doctor Strange #9       DC Anti-Hero        9     1            5
177             Hulk #9   Marvel   Villain        5     1            4
178          Aquaman #9   Marvel Anti-Hero        9     8            3
179         Catwoman #9   Marvel Anti-Hero        4     2            1
180        Wolverine #9   Marvel   Villain       10     8            6
181        Iron Man #10   Marvel      Hero        5     7            2
182          Batman #10   Marvel   Villain        9    10            8
183           Joker #10       DC      Hero        8    10           10
184            Thor #10   Marvel Anti-Hero        3     2            5
185          Thanos #10   Marvel      Hero        1     6            7
186    Wonder Woman #10   Marvel      Hero        3     6           10
187      Spider-Man #10       DC      Hero        4     3            2
188   Green Lantern #10   Marvel Anti-Hero        2     2            8
189        Deadpool #10   Marvel Anti-Hero        1     1            2
190   Black Panther #10       DC      Hero        7     6            4
191            Loki #10   Marvel      Hero        8     5            1
192 Captain America #10   Marvel   Villain        7     9            5
193        Superman #10   Marvel      Hero        5     1            9
194    Harley Quinn #10   Marvel   Villain        1     7            1
195           Flash #10   Marvel      Hero        7     5            9
196  Doctor Strange #10       DC   Villain        7     5            8
197            Hulk #10       DC Anti-Hero        9     2            6
198         Aquaman #10       DC      Hero        3     3            7
199        Catwoman #10   Marvel      Hero        9    NA            3
200       Wolverine #10   Marvel      Hero        1     6           NA
    Combat.Skill  Weapon Power.Score Popularity.Score
1              5   Sword          65               40
2              2  Shield          94               98
3              5  Hammer          62               40
4              8   Claws          83               91
5              9   Claws          78               77
6              2  Shield          54               33
7              3   Claws          95                6
8              3     Bow          88               88
9              1  Hammer          43               19
10             8 Psychic          68               80
11             6   Claws          61               40
12             8   Sword          64               92
13             9     Bow          52               97
14             5   Claws          57               59
15             3     Bow          72               59
16             5    None          55               48
17             5 Psychic          84               41
18             5   Magic          81               13
19             3   Sword          83               45
20            10   Sword          41               89
21             4  Hammer          94               53
22             9     Bow          74               42
23            10  Shield          81              100
24             9   Sword          73               63
25             2     Bow          69               27
26             8     Bow          98               38
27             8    Tech          94               60
28             7                  52                7
29             8                  52                5
30             3    None          57               45
31             6   Magic          71               58
32             1   Claws          71               31
33             7  Shield          74               23
34             1   Claws          98               42
35             9   Claws          78               10
36             1  Hammer          85               32
37             1   Claws          91               53
38             7   Magic          68               30
39             2   Sword          88               39
40             5   Sword          68               31
41             8    Tech          92               82
42             8  Shield          83              100
43             3                  96                2
44             7  Hammer          55               78
45             3   Magic          95               77
46             6    Tech          83               93
47             6  Shield          86               12
48             3                  96               39
49             7   Claws          49               66
50             3   Claws          69               96
51             8    Tech          64               13
52            10   Magic          78               46
53             4   Magic          59               27
54             1    None          44               17
55             4 Psychic          40               95
56             7  Shield          69               98
57             4   Magic          88               60
58             6   Sword          42               64
59             9    Tech          84               88
60             1    None          53               35
61             5                  95               70
62             7  Hammer          69               83
63             1     Bow          89               30
64             4   Claws          43               71
65             6  Hammer          57               74
66             2  Shield          76               96
67            10   Sword          64               98
68             5  Hammer          87               63
69            10 Psychic          40               28
70             1     Bow          92               60
71             6  Shield          85               79
72             6 Psychic          54               94
73             4   Claws          48               37
74             8 Psychic          54               93
75             4    None          88               22
76             8    None          96               68
77             8    Tech          63               20
78             5  Shield          43               96
79             4   Claws          51              100
80             2   Magic          98               68
81             3    None          97               91
82             3  Shield          76               64
83             4   Magic         100               17
84             4    Tech          76               12
85            10 Psychic          82               22
86             5    None          99               17
87             4  Shield          45               10
88            10  Hammer          78               65
89             8   Magic          95               22
90             6 Psychic          85               90
91             6    None          63               82
92             8   Claws          50               50
93             7   Magic          52               14
94            10    None          73               64
95            10   Magic          64               47
96             8 Psychic          46               29
97             2    None          91               76
98             9     Bow          43               36
99             1  Shield          98               99
100            8 Psychic          47               52
101            4   Magic          59               76
102            4   Claws          68                7
103            5  Hammer          93               29
104            8   Magic          92               11
105            5  Shield          90               33
106            8    None          84                6
107           10  Hammer          85               79
108            1   Sword          49               32
109           10   Magic          82               51
110            9    Tech          73               75
111            6   Sword          96               58
112            3   Magic          65               87
113            8     Bow          80               26
114            9    Tech          88               98
115            6  Hammer          97               46
116            7                  42               98
117            1     Bow          95               29
118            5   Sword          45                4
119            5    None          44               81
120           10  Shield          44               99
121            4   Claws          93               13
122            6     Bow          86               39
123            7    None          62               15
124            9    None          88               29
125            1   Magic          48               29
126            6     Bow          74               75
127            7  Hammer          59               32
128            3    Tech          97                2
129            8    Tech          88               47
130            5   Sword         100               78
131            9   Sword          98               84
132            5    Tech          81               22
133            9  Hammer          74               75
134           10  Shield          89               27
135            4 Psychic          57               67
136            9  Shield          56               81
137            5   Magic          63               56
138           10 Psychic          42               92
139            9                  71               93
140            3     Bow          74               21
141            4  Hammer          77               47
142            9  Hammer          52               80
143           10 Psychic          95               59
144            6     Bow         100               84
145            2 Psychic          86                6
146            7   Claws          64               19
147            2   Sword          48               57
148            2   Sword          43               69
149            1  Shield          53                3
150            3   Magic          76                1
151            6                  73               58
152            8    None          50               38
153            9  Shield          80               15
154            7   Sword          95               34
155            4   Magic          42               61
156            6  Hammer          98               35
157            5  Hammer          67               64
158            8 Psychic          68               25
159            1   Claws          48               24
160            1  Hammer          42               12
161            6     Bow          64               18
162           10   Sword          73               15
163            2     Bow          51               80
164            5   Magic          81               27
165            1                  48               72
166            7   Claws          54               60
167            1   Magic          79               46
168            4    None          64               89
169            9    None          44               17
170            1     Bow          50               93
171            4 Psychic          98               53
172            6  Shield          73                8
173            6 Psychic          63               79
174            8 Psychic          99               27
175            1   Claws          54               46
176            7  Hammer          77               50
177            1   Claws          47               71
178            7   Magic          98                3
179            3    None          44               93
180            8   Claws          87               64
181            3   Magic          65               44
182            1   Claws          57               53
183            8 Psychic          45               24
184            3   Sword          76               60
185            2     Bow          99                3
186            1  Shield          87               20
187            3   Claws          52               46
188            2                  67               15
189            2    Tech          44               25
190            6   Claws          52               94
191            1   Sword          56               78
192            2  Shield          89               71
193            6   Claws          79               17
194            3  Hammer          84               84
195            4     Bow          71              100
196            1   Sword          68                9
197            8  Shield          90               38
198            7   Sword          97               48
199            7   Magic          42               60
200            3     Bow          95               63

2.2 图形1——超级英雄的不同阵营的条形图和堆积条形图

mytheme<-theme(plot.title=element_text(size="12"), # 设置主标题字体大小
    axis.title=element_text(size=10),              # 设置坐标轴标签字体大小
    axis.text=element_text(size=9),                # 设置坐标轴刻度字体大小
    legend.position="none")                        # 移除图例

p1<-ggplot(data=heroes,aes(x=Alignment,fill=Alignment))+ # 设置x轴,按性别填充颜色
     geom_bar()+                            # 绘制条形图
     ylab("英雄个数")+                          # 设置y轴标签
     mytheme+                       # 使用设置的主题
     ggtitle("(a)不同阵营的超级英雄的个数的条形图")          # 添加标题

p2<-ggplot(heroes, aes(x = Universe, fill = Alignment)) +
  geom_bar(position = "stack") +
  labs(title = "(b)各宇宙的阵营分布", x = "宇宙", y = "数量") +
  scale_fill_brewer(palette = "Set2")

grid.arrange(p1,p2,ncol=1)       # 按1列组合图形p1、p2

  • 图形解读:

    角色的数量排序为:英雄(hero)>反派(villain)>反派英雄(anti-hero)。英雄阵营的数量远大于反派英雄,反映创作中传统英雄仍然占据主导,复杂人格的反派英雄角色相对稀缺。且DC宇宙的反派比例大于漫威的,可能意味着DC更侧重正邪对抗,而漫威更强调英雄主义。

3 数据分布可视化

3.1 案例数据解释与展示

  • 《superheroes》来自于kaggle数据网,记录了多个影视作品中超级英雄的详细数据,包括角色名称、所属宇宙、阵营、能力数值等等,可以横向比较不同宇宙、阵营角色的能力特征与人物表现。
#处理缺失值
heroes <- read.csv("E:/可视化期末报告/superheroes.csv") %>%
  mutate(across(c(4:7), ~replace_na(., median(., na.rm = TRUE)))) 

#数据预处理
heroes1 <-pivot_longer(heroes,cols = c(Strength, Speed, Intelligence, `Combat.Skill`), names_to = "Ability", values_to = "Score")
heroes1
# A tibble: 800 × 8
   Name     Universe Alignment Weapon Power.Score Popularity.Score Ability Score
   <chr>    <chr>    <chr>     <chr>        <int>            <int> <chr>   <dbl>
 1 Iron Ma… Marvel   Anti-Hero Sword           65               40 Streng…     1
 2 Iron Ma… Marvel   Anti-Hero Sword           65               40 Speed       1
 3 Iron Ma… Marvel   Anti-Hero Sword           65               40 Intell…     2
 4 Iron Ma… Marvel   Anti-Hero Sword           65               40 Combat…     5
 5 Batman … DC       Anti-Hero Shield          94               98 Streng…     5
 6 Batman … DC       Anti-Hero Shield          94               98 Speed       4
 7 Batman … DC       Anti-Hero Shield          94               98 Intell…     6
 8 Batman … DC       Anti-Hero Shield          94               98 Combat…     2
 9 Joker #1 Marvel   Hero      Hammer          62               40 Streng…     3
10 Joker #1 Marvel   Hero      Hammer          62               40 Speed       9
# ℹ 790 more rows
top_weapons <- names(sort(table(heroes$Weapon), decreasing = TRUE))[1:5]
heroes_filtered <- heroes[heroes$Weapon %in% top_weapons, ]#武器太多了,选择几个比较常见的武器

3.2 图形2——超级英雄能力分布值的箱线图和按武器分组的核密度图

p1<-heroes1 %>%
  ggplot(aes(x = Ability, y = Score, fill = Ability)) +
  geom_boxplot() +
  labs(title = "(a)能力值分布比较")

p2 <- ggplot(heroes_filtered) +
  aes(x = Power.Score, y = ..density.., fill = Weapon) +
  geom_density(position = "identity", color = "gray60", alpha = 0.5) +
  scale_fill_brewer(palette = "Set3") +
  theme(legend.position = "left",
    legend.background = element_rect(fill = "grey90", color = "grey")) +
  ggtitle("(b)按武器类型划分的力量得分分布") +
  xlab("Power Score") +
  ylab("Density")


grid.arrange(p1,p2,ncol=1)       # 按1列组合图形p1、p2

  • 图形解读:

    (a)的箱线图清晰的呈现了五种能力指标的统计特征,strength(力量)和combat skill(战斗技能)的中位数最高,且分布很集中,说明多数超级英雄在这两项的表现突出,intelligence(智力)和speed(速度)的离散程度较大,存在比较多极端值,意味着智力型和速度型角色能力差异比较显著。(b)的密度图揭示了能力值的聚集特征,strength呈现了双峰分布,可能是因为角色力量分正派巅峰和反派巅峰两个梯队实力相当,intelligence在低分段密度比较高,可能影视公司认为天才角色应该比较稀少。

4 变量关系可视化

4.1 案例数据解释与展示

  • 这个数据集包含了958条手机相关属性的记录,每条记录有21个特征,涵盖了手机的硬件配置、网络功能、外观设计等多个方面。主要特征包括电池与性能、网络与链接、外观设计等等。
library(ggiraphExtra)
library(readr)
library(GGally)
mobile<- read_csv("E:/可视化期末报告/influence of mobile phone.csv")

#数据太多,只随机抽取50个样本,保留前6个变量
mobile1 <- mobile %>%
  sample_n(50) %>%  # 随机选 50 行
  select(2:7)  # 选择第二列到第七列
mobile1
# A tibble: 50 × 6
   battery_power  blue clock_speed dual_sim    fc four_g
           <dbl> <dbl>       <dbl>    <dbl> <dbl>  <dbl>
 1          1991     0         0.5        0     5      0
 2          1698     0         0.5        0     6      1
 3          1758     1         2.1        0    14      0
 4          1065     0         0.5        0     0      0
 5          1278     1         0.5        1     2      0
 6          1545     1         1.7        0     1      1
 7          1263     0         2.4        1    11      1
 8          1137     1         0.8        0     3      1
 9          1190     1         2.1        0     0      1
10          1180     1         3          0     7      1
# ℹ 40 more rows

4.2 图形3——利用ggCor 函数绘制相关系数矩阵

p1<-ggCor(mobile1,whaw=1,    # 计算Pearson相关系数
  digits=4,                # 保留4为小数
  label=3,                 # 显示相关系数及其检验的P值
  mode=2,                  # 显示半角矩阵
  xangle=15)+              # 设置x轴标签角度
ggtitle("ggCor函数绘制的相关系数矩阵")
p1

  • 图形解读:

    battery power和其他变量相关性较弱且多为负值,比如它和blue的r=-0.2006,表明电池容量和蓝牙功能存在负相关。从总体看来这些变量之间的相关性较弱,且从图形底部的色阶条也可以看到颜色的变化不是很明显,进一步印证了相关性较弱的特点。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 该数据集来自kaggle数据网站,记录了1991名学生的生活习惯和学业表现,包含15个变量(年龄、性别、父母教育水平、学习时间、娱乐时间睡眠时长和饮食质量等等),可以利用该数据发现成绩相近的学生的其他特征相似性和关联。
library(factoextra)
library(RColorBrewer)
library(dplyr)
library(RColorBrewer)
library(gridExtra)

student_data<- read_csv("E:/可视化期末报告/student_habits_performance.csv")
student<- student_data %>%sample_n(20) #样本数量太多,缩减到20个
student
# A tibble: 20 × 16
   student_id   age gender study_hours_per_day social_media_hours netflix_hours
   <chr>      <dbl> <chr>                <dbl>              <dbl>         <dbl>
 1 S1174         24 Male                   3.7                3.6           3.3
 2 S1253         21 Male                   6.7                1.4           0.9
 3 S1694         18 Male                   5                  4             1.4
 4 S1456         22 Female                 3.9                1.6           0.7
 5 S1601         24 Other                  4.6                1.5           1.8
 6 S1801         22 Female                 3.9                1.8           3.9
 7 S1132         17 Female                 3.5                2.6           3.2
 8 S1441         24 Female                 5.6                3.2           1  
 9 S1138         23 Male                   3.9                3.3           0.5
10 S1199         19 Female                 3.8                3             0.7
11 S1794         17 Female                 2.6                1.4           1.2
12 S1595         20 Male                   5.6                2             0  
13 S1920         21 Male                   3.5                3.9           2.5
14 S1128         20 Male                   1.8                1.8           1.1
15 S1400         24 Male                   3.5                1.3           2.1
16 S1887         22 Male                   3.5                2.1           4.9
17 S1432         21 Other                  4.2                2.4           4.3
18 S1605         19 Male                   2.2                3.5           1.8
19 S1538         21 Male                   4.3                3.2           2.8
20 S1586         22 Female                 5                  2.8           0  
# ℹ 10 more variables: part_time_job <chr>, attendance_percentage <dbl>,
#   sleep_hours <dbl>, diet_quality <chr>, exercise_frequency <dbl>,
#   parental_education_level <chr>, internet_quality <chr>,
#   mental_health_rating <dbl>, extracurricular_participation <chr>,
#   exam_score <dbl>
#数据预处理
mat <- student %>%
  select(study_hours_per_day, social_media_hours, netflix_hours, 
         attendance_percentage, sleep_hours, exercise_frequency, exam_score) %>%
  na.omit() %>%  # 删除缺失值
  scale()        # 标准化数据

5.2 图形4——20名学生的习惯和成绩的聚类图和热图

# 计算距离矩阵
d <- dist(mat, method = "euclidean")  # 采用欧几里得距离计算样本间距离

# 层次聚类
hc <- hclust(d, method = "ward.D2")  # 采用ward.D2法计算类间距离

# 绘制聚类图
p1<-fviz_dend(hc, 
          k = 3,             #设置分为3类
          cex = 0.8,        #增大标签字体便于查看
          horiz = FALSE,     #垂直摆放图形  
          k_colors = brewer.pal(3, "Set1"), #使用3种颜色
          color_labels_by_k = TRUE,           
          lwd = 0.8,                   
          type = "rectangle",                 
          rect = TRUE,                        
          rect_fill = TRUE,                   
          main = "(a)20名学生习惯与成绩层次聚类",  
          xlab = "学生样本",                  
          ylab = "聚类高度")
p1

p2<-heatmap(mat, 
        scale = "column",
        margins = c(8, 6),      # 下边距8,左边距6
        cexRow = 0.6,
        cexCol = 0.7,
        main = "(b) 学生习惯与成绩双边聚类",
        Colv = TRUE,  # 对列聚类
        Rowv = TRUE)  # 对行聚类

  • 图形解读:

    (a)当聚类高度约为2.5时,学生大致被划分成了3个群组,;高度为0时,每个学生自成一体,学生被分在了不同的分支表明这些学生在习惯和成绩上存在着差异;整体聚类结构在高度为5以上时趋于合并,说明部分学生特征存在较高相似性。

    (b)结果显示如16和17学生可能在”学习时长”和“成绩上表现相似,4和20则在”睡眠“或”运动频率“上聚集,可以通过这些聚类发现学生行为和成绩的内在关联。

6 时间序列可视化

6.1 案例数据解释与展示

  • 该数据集来源于世卫组织,展示了2024年1月至12月每隔一个小时的纽约的空气质量和污染程度,包括一氧化碳,二氧化碳,二氧化硫、臭氧等等可用于分析空气质量的时间分布、污染源影响和健康风险。(由于数据实在太多,我直接在excel上删除了除该月第一天00:00:00之外的其他数据,所以现在样本只保留了12个)
library(ggplot2)
library(tidyr)
library(lubridate)
library(ggpol)

air<- read_csv("E:/可视化期末报告/New_York_Air_Quality.csv")%>% 
  select(-CO2)   #co2这个变量大部分都是空值,直接删掉

air$Date <- as.Date(air$Date)
air1 <- gather(air, key = "Indicator", value = "Value", -Date) # 将数据从宽格式转换为长格式

air
# A tibble: 12 × 8
   Date          CO   NO2   SO2    O3 PM2.5  PM10   AQI
   <date>     <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1 2024-01-01   514  56.8  10.7     0  19.3  27.8  26.7
 2 2024-02-01   805  64.2  18.1     0  37.5  55.4  29.7
 3 2024-03-01   244  32.5   4.3    53  12.1  17.6  21.2
 4 2024-04-01   352  60.3   5.9    22  19.3  28.2  28.1
 5 2024-05-01   358  51.5   7.9    32  23.3  36.2  34.9
 6 2024-06-01   239  27.5   2.7    45   9.1  13    21.6
 7 2024-07-01   310  31     5.1    74  24.6  35.4  30.3
 8 2024-08-01   271  23.7   4.5    83  22.1  31    33.2
 9 2024-09-01   381  60.2   7.5    12  18.4  28.1  28.1
10 2024-10-01   295  46.6   6.1    26  12    18.1  22.6
11 2024-11-01   298  52.7   7.9    30  13.1  19.3  33.7
12 2024-12-01   262  28.3   5.3    38  11.3  11.4  15.2

6.2 图形5——绘制关于空气的多指标分面折线图

p <- ggplot(air1, aes(x = Date, y = Value, color = Indicator)) +
  geom_line(size = 0.45) +
  theme(legend.position = "none",
        axis.text.x = element_text(size = 7, angle = 90, hjust = 1, vjust = 1)) +
  theme(panel.grid.minor.x = element_blank(),
        panel.grid.minor.y = element_blank()) +
  scale_x_date(expand = c(0, 0), 
               date_breaks = "1 month", 
               date_labels = "%b") +
  facet_wrap(~Indicator, ncol = 3, scales = "free_y")+
  geom_tshighlight(aes(xmin=as.Date("01/04/2024",format="%d/%m/%Y"), 
   xmax=as.Date("01/07/2024",format="%d/%m/%Y")),                 # 设置x轴的最小值和最大值
   color="skyblue",fill="lightblue",alpha=0.02)                #将4月到7月高亮显示

print(p)

  • 图形解读:

    一氧化碳1-2月浓度较高,可能和冬季取暖燃烧有关,夏季降至最低;PM2.5和PM10呈明显的季节性波动,2月达到峰值,6月最低,可能与冬季逆温天气和夏季扩散条件改善有关;二氧化硫二月出现峰值,其他月相对平稳;整体上冬季污染最严重,3月和8月因为臭氧升高导致AQI反弹,此为光化学污染的季节特征。