用数据看中国在里约奥运取得的成绩

背景

4年一届的奥运会又过去了,让我们用数据看看中国在2016年里约奥运会取得的成绩吧。

可视化

id

这一张是用R语言中的treemap包绘制了中国金牌的分布情况,矩形的面积反映项目的总金牌数,比如田径作为奥运第一大项,所占金牌最多。中国在每个项目中获得的金牌数用颜色的深浅来表示,比如跳水、举重、乒乓球等中国所获金牌比较多,而在有些项目上则没有收获金牌。

id

这一张图是用R语言绘制的层次聚类,主要是用了金牌数、银牌数和铜牌数,从图中可以看出,在10个簇中,中国处于第二阵营,与英国、俄罗斯取得的成绩相近。

当然,这点数据并不能代表中国健儿的全部,全当娱乐啦~

代码

代码和数据集都在这里

library(treemap)
library(stringr)
library(dplyr)

data <- read.csv("d:/R/ch.csv", header = T, sep = ",")
treemap(data,
    index = c("sports"),
    vSize = "gold",
    vColor = "china",
    type = "value",
    title = '中国金牌分布',
    fontsize.labels = 15,
    lowerbound.cex.labels = 0,
    palette = "RdYlGn")

rio <- read.csv("d:/R/rio.csv", header = T, sep = ",")
rio$country <- str_replace_all(rio$country, "[?]", "")
rio_selected <- select(rio, gold, silver, bronze)
d <- dist(rio_selected, method = "euclidean")
pfit <- hclust(d, method = "ward.D")
plot(pfit, labels = rio$country)
rect.hclust(pfit, k = 10)

参考文献

[1][https://en.wikipedia.org/wiki/2016_Summer_Olympics]