专栏名称: 表哥有话讲
国内最大的R语言专业学习平台| R官方认证学习实践社区--校企实践交流、名企内推和成果分享,立即关注-掌握R语言全球最新资讯与成果!
目录
相关文章推荐
德鲁克博雅管理  ·  创新与企业家精神 ·  4 天前  
德鲁克博雅管理  ·  创新与企业家精神 ·  4 天前  
什么值得买  ·  双11好价|苹果新品Mac ... ·  6 天前  
二孩妈妈进化论  ·  双十一开启!澳洲大牌AUSHEEP ... ·  6 天前  
二孩妈妈进化论  ·  双十一开启!澳洲大牌AUSHEEP ... ·  6 天前  
每天发现一家店  ·  低价捡漏 - 1030 ·  1 周前  
51好读  ›  专栏  ›  表哥有话讲

用ggplot轻松搞定太极图

表哥有话讲  · 公众号  ·  · 2017-07-12 11:59

正文

 作者:杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化。
个人公众号:数据小魔方(微信ID:datamofang) ,“数据小魔方”创始人。 

精彩回顾:用R-Shiny打造一个美美的在线App

                  一篇全是代码的数据可视化案例

                  地图可视化之——移花接木

ggplot的图层语法给了使用者无限种可能,再配合上自己对于数据操纵的灵活把控,真的不知道ggplot可以给我们呈现出什么的惊艳作品。

这不,清明假期无聊的我,用ggplot搞定了太极阴阳图。


library("ggplot2")

library(Cairo)

library(ggmap)

本文太极图的构造理念相当简单,取笛卡尔坐标系的0点为圆心,其他 所有元素都是围绕零点圆心的坐标构成。


  • 该图涉及到一个大圆环;

  • 两个大半圆面积图(太极的上下黑白部分);

  • 两个小半圆面积图(太极的左右次半圆);

  • 以及阴阳鱼的黑白小圆(这里没有构造数据而是通过实心圆点来表示的)。


以下是数据构造过程


bigcirclex

bigcirclex

太极图X轴横坐标

bigcircley

#Y轴纵坐标

这里的


upcirclex

upcircley

downcirclex

downcircley

上下次半圆的横纵坐标


左右小圆的横纵坐标

leftcirlex

leftcirley

rightcirclex

rightcircley


作图函数


setwd("F:/数据可视化/R/R语言学习笔记/可视化/ggplot2/商务图表")

CairoPNG(file="taiji.png",width=1000,height=1000)

ggplot(data=NULL)+

geom_area(aes(upcirclex,upcircley),fill="white",col=NA)+

geom_area(aes(downcirclex,downcircley),fill="black",col=NA)+

geom_area(aes(leftcirlex,-leftcirley),fill="white",col=NA)+

geom_area(aes(rightcirclex,rightcircley),fill="black",col=NA)+

coord_flip()+

annotate("text",x=-500,y=0,label="●", color= "black", size=80)+

annotate("text",x=500,y=0,label="●", color= "white", size=80)+

geom_path(aes(bigcirclex,bigcircley),col="grey60")+

theme_nothing()

dev.off()

快报:杜雨2017年09月12在Hellobi Live直播【R语言可视化在商务场景中的应用

内容:1、为什么选择R;2、ggplot2可视化理念;3、配色方案与规则;4、案例分享;5、高级数据地图专题应用;6、图形输出。

点击阅读原文立即学习+扫码咨询