彩票走势图

开源图表库Highcharts教程:带R的交互式箱线图和抖动

翻译|使用教程|编辑:杨鹏连|2020-07-01 15:14:04.420|阅读 290 次

概述:一起探索如何将箱形图与抖动如何相结合,比较连续变量并可视化其大小。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:


Highcharts是一款纯JavaScript编写的图表库,为你的Web网站、Web应用程序提供直观、交互式图表。当前支持折线、曲线、区域、区域曲线图、柱形图、条形图、饼图、散点图、角度测量图、区域排列图、区域曲线排列图、柱形排列图、极坐标图等几十种图表类型。

点击下载Highcharts最新试用版

开源图表库Highcharts教程:带R的交互式箱线图和抖动

箱形图是一种非常好的图表,可帮助快速可视化我们的数据点分布的形状并检测异常值。然而,箱形图的解释很容易混淆并误导受众。克服这一缺点的一种方法是将箱形图与抖动相结合。

在本教程中,我们将向您展示如何通过组合箱形图和抖动来创建有效的R可视化效果。

备注
  • 所有图表都是使用R库Highcharter创建的,因此强烈建议您遵循R的基本知识。
  • 本教程使用Highcharter库的开发版本(0.7.0.9001),因为抖动图类型尚未集成到生产版本中。
  • 所使用的数据与上一个javascript教程小倍数和箱线图中的数据集相同。
让我们开始吧 🙂

基本上,箱形图仅在五个主要值中显示大量点的统计数据:最大值,第三四分位数,中位数,第一四分位数和最小值。如果数据集有异常值,则箱形图也会显示它们。

下面的演示显示了2012年奥运会运动员四个不同学科的高度:独木舟,体操,曲棍球和现代五项:

这是R中的代码:

install.packages("devtools")
library(devtools)
devtools::install_github("jbkunst/highcharter")
library("highcharter")
library("dplyr")
library(readr)

packageVersion("highcharter")

#Load the data
df <- read_csv( "//raw.githubusercontent.com/mekhatria/demo_highcharts/master/Olympics2012CapitalLetter.csv" ) #Remove the unnecessary data such as nationality, date of birth, name, and age df = subset(df, select = -c(nationality, date_of_birth, name, age)) # Compare the data set using the descipine name and sex my_data <- df %>% filter((sport == "Gymnastics" &
                   sex == "male")  |
                  (sport == "Canoe" &
                     sex == "male") |
                  (sport == "Hockey" &
                     sex == "male") |
                  (sport == "Modern Pentathlon" & sex == "male")
  )
#Remove the redundant data
my_data = subset(my_data, select = -c(sex))
#Create the chart
hcboxplot(
  outliers = FALSE,
  x = my_data$height,
  var = my_data$sport,
  name = "Length"
) %>%
  hc_title(text = "Male height by descipline (Olympic 2012)") %>%
  hc_yAxis(title = list(text = "Height in metre")) %>%
  hc_chart(type = "column")

我们可以观察到以下内容:

  • 体操和曲棍球项目的数据表示正态分布,因为中位数相对于箱形图的中心,而晶须的长度大致相同。晶须是盒子末端之间的细线。
  • 独木舟项目的数据略微偏向顶部。
  • 由于现代五项项目的中位数接近底部,因此其数据存在偏差。
  • 与其他两个学科相比,现代五项运动会的男性身高彼此更接近。

到目前为止,箱形图使我们能够以非常整洁和快速的可视化方式获得一些统计信息和数据比较。但是,箱形图未显示图表上的数据点。如果没有数据点,图表的解释很容易误导受众,使其将盒图的长度与数据点的大小联系起来,或者两个相似的盒图大小会有相同的数据点数量等。换句话说,我们无法回答以下问题:

  1. 样本的大小是多少?
  2. 样本如何分散在图表上?
  3. 每个数据集中有多少离群值?
  4. 每个最小或最大末端有几个点?
  5. 数据的密度是多少?
  6. 体操和曲棍球箱形图的形状相似,是否表示它们具有相同大小的样本?

弥补箱形图缺点的一种方法是增加抖动。添加到绘图框中的抖动会显示数据点的密度和大小。

这是R中的代码:

#Load the data
df <- read_csv( "//raw.githubusercontent.com/mekhatria/demo_highcharts/master/Olympics2012CapitalLetter.csv" ) #Remove the unnecessary data such as nationality, date of birth, name, and age df = subset(df, select = -c(nationality, date_of_birth, name, age)) # Comparing two data set using the sport name and sex my_data <- df %>% filter((sport == "Gymnastics" &
                   sex == "male")  |
                  (sport == "Canoe" &
                     sex == "male") |
                  (sport == "Hockey" &
                     sex == "male") | (sport == "Modern Pentathlon" & sex == "male")
  )
#Remove the redundant data
my_data = subset(my_data, select = -c(sex))
#Create the chart
hcboxplot(
  x = my_data$height,
  var = my_data$sport,
  name = "Length",
  color = "#2980b9",
  outliers = TRUE
) %>%
  hc_chart(type = "column") %>%
  hc_title(text = "Male height by descipline (Olympic 2012)") %>%
  hc_yAxis(title = list(text = "Height in metre")) %>%
  hc_add_series(
    data = my_data,
    type = "scatter",
    hcaes(x = "sport", y = "my_data$height", group = "sport")
  ) %>%
  hc_plotOptions(scatter = list(
    color = "red",
    marker = list(
      radius = 2,
      symbol = "circle",
      lineWidth = 1
    )
  ))  %>%
  hc_plotOptions(scatter = list(jitter = list(x = .1, y = 0)))

毫无疑问,在可视化的项目中,独木舟和曲棍球项目拥有最大数量的样本,而现代五项拥有最小数量的样本。尽管如此,体操和曲棍球项目的方框图形状几乎相同。它们的数据点大小不同。添加抖动的另一个好优点是可以直观地显示每个规则的最大值,最小值和离群值的数量。

好吧,看来增加抖动有助于我们更好地理解数据集。但是,值得一提的是,抖动图本身也有其缺点,但是与箱线图的组合可从每个图中获得最佳效果,因为它们可以相互弥补缺陷。抖动图将在另一篇文章中探讨:)。

现在,您知道如何通过混合箱形图和抖动来创建引人注目的交互式图表。让我们知道您使用这些图表的经验,并随时在下面的部分中分享任何评论或问题。


想要购买Highcharts正版授权,或了解更多产品信息请点击




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP