美文网首页Origin及绘图R语言
我一直以为奥林匹克水立方上面的格子是乱画的。

我一直以为奥林匹克水立方上面的格子是乱画的。

作者: 9d760c7ce737 | 来源:发表于2019-07-17 09:49 被阅读33次

我们之前讲过一次用gganimate在R语言里面实现动图。
如何让你的基因放烟花?

当时我还看到有人用到了足球的数据上,


除了觉得炸裂,很好奇每个主球运动员代表的点所在的那个面积是什么意思。
问题放在心里,总会有答案,最近我知道了,那个是Voronoi图(维诺图)
我们国家著名的奥林匹克水立方,他表面的那个格子就是维诺图。

这种格子也出现在了很多设计中



不过这些都是感性认识,最让我涨知识的是下面这一段话,他解答了我心中一个长久的疑惑:

我们常听电视台说一个地区的降雨量,那么这个地区是如何界定大小的?

下面是我的摘抄

荷兰气候学家A•H•Thiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。
http://muchong.com/html/201207/4675940.html

实际上泰森多边形仅仅维诺图在其中中的一个运用,维诺图在1908年就被提出。他是有意义的,他的绘制过程如下:
1.黑色是原点,又叫生成点
2.连接生成点,会得到很多三角形
3.每个三角形的边作垂直平分线
4.得到相交的点,连线得到维诺图


这时候,每一个小方块中只有一个生成点,方块中的任何一点到其对应的生成点的距离都小于到其他生成点的距离。

这个特性可以用来做疆域规划,比如我们国家每个省市的形状是否合理,跟省会的距离是否符合维诺图呢?有人画过这样的图
http://www.dataguru.cn/article-836-1.html


他还得出了一些建议:
  1. 内蒙古应该好好的规划一下,从东边到西边实在太远了,把西边的划给宁夏可能好点;东边划给北京、东三省;
  2. 河北北部,不论是属于北京还是天津都会好些
  3. 青海应该把甘肃的北部包括进去;

除了疆域规划,生物医学也有人用维诺图来研究毛细血管网对肌肉的供应。

而我关系的问题是,怎么画?既然已经知道了他的名字,那么检索起来就很方便,很快,我就知道,ggvoronoi这个R包可以画。我喜欢gg系列,就是因为他能更好地跟ggplot2匹配。
https://cran.r-project.org/web/packages/ggvoronoi/vignettes/ggvoronoi.html

首先安装并加载R包

install.packages("ggvoronoi")
library(ggvoronoi)

生成数据

所需要的数据很简单,就是随机的点。我们这里根据官方教程生成在1:200之间波动的100个点,最终他们会出现在200*200的正方形区域。

x <- sample(1:200,100)
y <- sample(1:200,100)
points1 <- data.frame(x, y)

生成维诺图

library(ggplot2)
ggplot(points1,aes(x,y)) +
  stat_voronoi(geom="path") +
  geom_point()

上面的图还可以用以下代码实现

ggplot(points,aes(x,y)) +
  geom_voronoi(fill=NA,color="black")

这里是把geom_voronoi的填充fill给去掉了,如果加上颜色,会对面积进行填充。

ggplot(points,aes(x,y)) +
  geom_voronoi(fill="#4dffb8",color="black")

不过官方教程里面给出了更加精致的方案,设定一个变量,这个变量是图上的点到(100,100)这个点的距离,这样他就有了梯度,然后把这个变量放在aes参数中,就实现了渐变效果。

points2 <- data.frame(x, y,
                     distance = sqrt((x-100)^2 + (y-100)^2))
ggplot(points2,aes(x,y)) +
  geom_voronoi(aes(fill=distance),color="#4dffb8",size=.125) +
  scale_fill_gradient(low="#4dffb8",high="black",guide=F)+
  theme_void()

这个配色真是欲罢不能。用来做为PPT的背景也是很好的。


好了,明天见。其实我很怕突然间有一次说着明天见,但是不能相见。

相关文章

  • 对标维密的丝袜新品牌,维诺丝袜。

    昨天的帖子,其实很长知识。我一直以为奥林匹克水立方上面的格子是乱画的 后面经过学员提醒,这个维诺图可以出现在很多场...

  • 我一直以为奥林匹克水立方上面的格子是乱画的。

    我们之前讲过一次用gganimate在R语言里面实现动图。如何让你的基因放烟花? 当时我还看到有人用到了足球的数据...

  • 20181002

    今天带妈妈去了奥林匹克中心,去了鸟巢水立方。

  • 冬奥会的奥林匹克公园

    今天是个好天气,我以为奥林匹克公园站会封闭。结果开心发现没有,只有鸟巢和水立方等封闭了。今天天气好,来玩的游客比平...

  • 水立方游泳初体验

    国家游泳中心又称“水立方”(Water Cube)位于北京奥林匹克公园内,是北京为2008年夏季奥运会修建的主游泳...

  • 游记——奥林匹克森林公园

    带着家人游览一下奥林匹克公园,看一下鸟巢水立方,感受一下冠军诞生的气息。 由于疫情原因鸟巢水立方都进不去只能在外边看看。

  • 六日闯大北京

    D1傍晚到京,专车入住三里屯,放好行李,出来吃晚饭。D2:晴晒上午:奥林匹克公园、奥林匹克塔、水立方、鸟巢下午:天...

  • 奥林匹克:更快更高更强的精神

    北京奥运会召开前后,我们专门去奥林匹克中心参观。那里的鸟巢,那里的水立方,都曾经是我们心中的牵挂。然而十年很快就过...

  • 北京第五天

    今天我们到了北京的奥林匹克公园,在这里有鸟巢,水立方,这里是2008年北京奥运会的举行地。 今天我们来到了这里,这...

  • 北京景点

    后海景区:烟袋斜街,恭王府,胡同,南锣鼓巷的陶艺,菊儿胡同,僧王府,茅盾 鸟巢景区:奥林匹克森林公园,鸟巢,水立方...

网友评论

    本文标题:我一直以为奥林匹克水立方上面的格子是乱画的。

    本文链接:https://www.haomeiwen.com/subject/dcdakctx.html