原文链接:http://tecdat.cn/?p=23322

原文出处:拓端数据部落公众号

月亮图和饼图

饼图把一个圆分成多个部分,这些部分的弧长(以及面积)代表一个整体的比例。月亮图也是如此,它把一个圆分成多个部分,这些部分的面积代表整个圆的比例,但在月亮图中,这些部分被画成圆的月牙形,就像月相。

使用月亮图而不是饼图背后的动机主要是审美的选择。还要注意的是,由于月亮图的各部分是从圆的一侧或另一侧扫过的,所以一般只适合于描述一个或两个群体。

月亮图与Kosara(2019)1的 "圆形切片 "图类似。在研究受试者对不同图表类型中百分比的感知时,"圆形切片 "的表现与饼图类似。月亮图与 "圆形切片 "的不同之处在于,后者是在一个基础圆上滑动第二个同样大小的圆盘,更像是月食而不是月相。然而,两者都依赖面积作为视觉线索。

用法

ggplot2数据可视化包,为R语言中的月亮图提供支持。它们的绘制方式与ggplot2中的点最为相似:它们的位置由一个x和一个y坐标定义,它们的大小与坐标系无关,所以它们总是保持圆形。

ggplot(data.frame(x = 1:5, y = 1)) +geom_point(y = 2) +scale_size(range = c(5, 10))+

两个新的美学在geom_moon中也很重要:比例和填充

比例美学

比率控制要绘制的月亮的比例。它必须在0("新月",实际上什么都没画)和1("满月",即一个圆)之间。

ggplot(data.frame(x = 1:5, y = 0, ratio = 0:4 * 0.25), aes(x = x, y = y),ratio = ratio), size = 20, fill = "black") +geom_text(aes(y = y + 1, label = ratio)) +

填充美学

右边需要一个布尔值,控制月亮是 "升 "还是 "降",也就是说,它是由右边还是左边 "填充 "的。

用两种颜色制作一个 "完整 "的月亮的一种方法是用right = TRUE表示一种颜色,用right = FALSE表示另一种颜色,比例互补。


ggplot( moons) +geom(aes(x, y, ratio = ratio, right = right, fill = right)) +

图例关键字

三个关键字,用于不同类型的图例:默认值,绘制一个右边的悬臂月(见上文)。

left从左边画出一个新月,与长臂月互补,这对组合图例很有用。

ggplot(aes(x, y, ratio = ratio, right = right, size = 2^x)) +geom(data = subset(moons, right)) +geom(key = left) 

key画的是一个圆。它类似于 "点 "的形状,但计算方式略有不同,所以如果你想让图例月亮的尺寸和月亮的尺寸相匹配,就更合适。

ggplot(tidymoons) +geom(key = full) +

工作实例

地图上的月亮图

多饼图的一个常见用途是表示地图上不同坐标处的比例。x和y维度已经致力于地图坐标,所以像柱状图这样的比例可视化就比较困难。这是一个尝试月形图的绝佳机会!

饼图地图在人口遗传学中很流行,所以让我们看一下该领域的一个例子。数据包含果蝇种群中Adh基因的两个变体的频率。这些种群中有许多都很接近,所以我们必须处理过度绘制的问题,我们在下面手动处理。

moonmap <- ggplot(da, aes(long, lat)) +geom_polygon(data = map_data("world"),aes(group = group),) +

如果我们想在图例中明确标注等位基因,那么我们需要将它们映射到一个组中,这就要求我们将数据重新排列成一个 "较长"("整齐")的格式。

 reshape(v.names = "percent",times = c("dhF", "dhS"),direction = "long"
)

月球数据

有时你只是想绘制月球的文字表述。改编自NASA的月球数据,包含了2019年每天从地球到月球的距离,以及月球四个主要阶段每次出现的日期(UTC)。我们可以用月球图(在这种情况下与饼图相同)绘制这些主要阶段。


ggplot(lunardist, aes(date, distance)) +geom_line() +# 将下层绘制成一个完整的圆geom(data = phase, ratio = 1, size = 5, fill = "black") +

Harvey balls哈维球分析法

"哈维球 "本质上是用于定性比较的饼图,通常以表格形式出现。我们可以使用月形图来达到同样的目的。

首先,让我们获取一些数据。

哈维月亮的图表。

# 首先,我们将数据变化为 "长 "格式,以方便绘图。
rest <- reshape(restaurants,timevar = "Category",direction = "long"
)ggplot(rest, aes(0, 0)) +geom(aes(ratio = (Score - 1) / 4), fill = "black") +theme(panel.grid = element_blank()

参考文献


  1. Kosara, R. 2019. Circular Part-to-Whole Charts Using the Area Visual Cue. EuroVis 2019 - Short Papers. https://doi.org/10.2312/evs.20191163↩︎

  2. Oakeshott, J.G., et al. 1982. Alcohol dehydrogenase and glycerol-3-phosphate dehydrogenase clines in Drosophila melanogaster on different continents. Evolution, 36(1): 86-96.↩︎


最受欢迎的见解

1.R语言动态图可视化:如何、创建具有精美动画的图

2.R语言生存分析可视化分析

3.Python数据可视化-seaborn Iris鸢尾花数据

4.r语言对布丰投针(蒲丰投针)实验进行模拟和动态

5.R语言生存分析数据分析可视化案例

6.r语言数据可视化分析案例:探索brfss数据数据分析

7.R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

9.python主题LDA建模和t-SNE可视化

拓端tecdat|R语言在地图上绘制月亮图、饼状图数据可视化果蝇基因种群相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  3. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  4. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  5. 数据分享|R语言因子分析、相关性分析大学生兼职现状调查问卷数据可视化报告...

    全文链接:http://tecdat.cn/?p=31765 随着大学的普及教育,大学生就业形势变得更加困难,很多学生都意识到这个问题(点击文末"阅读原文"获取完整代码数据). 相 ...

  6. R语言使用forestploter包绘制单组及双组森林图

    R语言使用forestploter包绘制单组及双组森林图 您可以使用 forestplot 包绘制单组和双组森林图.该包提供了一个简单的方法来绘制证据汇总图,并可以在一个图中显示多种证据来源的结果. ...

  7. python绘制彩色地震剖面_在地图上绘制饼图时“爆炸”楔形图(Python,matplotlib)...

    所以我成功地在地图上绘制了饼图作为标记轴向散射,但我遇到了一些问题,一些楔子"爆炸"出了饼图.我似乎在我的代码中找不到原因,也无法在网上找到解释.这段代码基于示例here,一位同事 ...

  8. 如何在百度地图上绘制建筑楼块(矢量面)数据并导出为图片

    万能地图下载器的矢量面绘制功能可以在百度地图上绘制行政边界.建筑楼块.街区.居民地.植被.水系和湖泊等矢量面状数据. 这里我们以绘制建筑为例,通过以下几个步骤说明如何在地图中绘制建筑楼块,但请确保你的 ...

  9. R语言做地图上的分析

    2019独角兽企业重金招聘Python工程师标准>>> R和ggplot可视化功能非常强大,了解了一下其中的地图做法,发现R做世界地图.美国地图非常容易,但做中国地图就太麻烦了,需要 ...

  10. R语言使用forestploter包绘制单组及双组森林图(2)(附有超详细备注)

    森林图在论文中很常见,多用于表示多因素分析中的变量与结果变量的比值效应,可以用图示的方法比较直观的绘制出来.既往我们在文章<R语言快速绘制多因素回归分析森林图(1)>已经介绍了怎么绘制森林 ...

最新文章

  1. DataTable ,XML和JSON相互转化
  2. Linux系统下使用桥接模式,无法ping通外网解决问题方案!
  3. 凝思操作系统启动盘制作_实用!如何快速制作U盘启动盘并且重装系统
  4. shell脚本字符串截取
  5. C++ #pragma comment语法(预处理指令)
  6. Spark SQL中 RDD 转换到 DataFrame (方法二)
  7. css基础选择器教程,CSS核心基础 一些常见的选择器的使用 小白教程
  8. C#软件winform程序安装包制作及卸载程序制作
  9. 字符串转换整形数,结构体数组排序
  10. Object相关方法
  11. 星形和雪花模型_数据仓库多维数据模型设计
  12. 冒泡排序提前终止条件_“离职要提前30天通知”这9种误区,你踩过几个?
  13. 一步一步写算法(之链表排序)
  14. bzoj 1131: [POI2008]Sta(DPS)
  15. 2.从Paxos到Zookeeper分布式一致性原理与实践---一致性协议
  16. about HashMap
  17. Unity3D 《坦克大战》案例源码过程
  18. 智能化酒糟池测温技术方案
  19. uni-app学习:CSS之渐变色
  20. css——给多张图片设置一个背景图:上下固定尺寸+中间拉伸,里面放内容

热门文章

  1. ORACLE 常用函数——日期/时间函数
  2. django 学习个人总结 之many_to_one
  3. Ubuntu安装nagios步骤
  4. 2018年,20大Python数据科学库都做了哪些更新
  5. 【bug】记一个有趣的“bug”
  6. 复化辛普森公式求二重积分matlab源码及例题
  7. 如何在Win10上配置JDK1.8
  8. SQL调优技巧:统计信息(文末福利)
  9. 高级I/O-----dup/dup2
  10. cmake安装mysql