ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-14 23:02:23  阅读:283  来源: 互联网

标签:aes right ratio tecdat geom 可视化 拓端 月亮 状图


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

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

月亮图和饼图

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

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

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

用法

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

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

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

比例美学

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

  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") +
  2.   geom_text(aes(y = y + 1, label = ratio)) +

填充美学

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

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

  1.    
  2.   ggplot( moons) +
  3.   geom(aes(x, y, ratio = ratio, right = right, fill = right)) +

图例关键字

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

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

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

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

  1.   ggplot(tidymoons) +
  2.   geom(key = full
  3.   ) +

工作实例

地图上的月亮图

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

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

  1.    
  2.    
  3.   moonmap <- ggplot(da, aes(long, lat)) +
  4.   geom_polygon(
  5.   data = map_data(
  6.   "world"),
  7.   aes(group = group),
  8.   ) +

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

  1.   reshape(
  2.   v.names = "percent",
  3.   times = c("dhF", "dhS"),
  4.   direction = "long"
  5.   )

月球数据

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

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

Harvey balls哈维球分析法

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

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

哈维月亮的图表。

  1.   # 首先,我们将数据变化为 "长 "格式,以方便绘图。
  2.   rest <- reshape(
  3.   restaurants,
  4.   timevar = "Category",
  5.   direction = "long"
  6.   )
  7.    
  8.   ggplot(rest, aes(0, 0)) +
  9.   geom(aes(ratio = (Score - 1) / 4), fill = "black") +
  10.   theme(
  11.   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可视化

标签:aes,right,ratio,tecdat,geom,可视化,拓端,月亮,状图
来源: https://www.cnblogs.com/tecdat/p/15142147.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有