数据可视化与rbokeh教程

数据可视化是将数据集中的洞察以图形方式呈现,使得数据的分析结果更加直观易懂。通过使用富有意义且引人注目的图表,可以更容易地传达数据分析的发现。根据不同的需求,有多种类型的图表可供选择,例如条形图用于展示分类分布,折线图用于展示时间序列信息等。当使用合适的图表和和谐的色彩搭配时,图表不仅方便而且美观。Python和R语言中有许多用于数据可视化的库,如Altair、ggplot、Bokeh、Holoviews等。

Bokeh简介

Bokeh是一个提供声明式框架的可视化包,用于生成灵活且强大的基于Web的图表。Bokeh使用HTML canvas生成图表,并具有多种交互功能。Bokeh支持Python、Scala、Julia以及R语言的接口。Bokeh库由Bokeh核心团队构建和维护。

rbokeh是什么?

rbokeh是一个使用Bokeh可视化工具的开源R语言绘图包。它提供了一个灵活的声明式接口,用于动态的基于Web的可视化。rbokeh包由Ryan Hafen开发并维护。在使用rbokeh之前,需要安装R和RStudio。也可以使用Kaggle或Google Colab来创建rbokeh可视化。

为什么选择rbokeh?

rbokeh允许构建各种类型的交互式图表。它帮助和观众通过与数据故事的互动来了解更多信息。结果可以被分享、集成到HTML文档中或用于在线应用中。

安装rbokeh

要开始使用,将使用R函数install.packages()从CRAN获取这个包。

install.packages("rbokeh")

导入rbokeh包,将使用以下命令:

library("rbokeh")

同时导入以下库:

library("tidyverse") library("ggplot2")

导入的库提供许多预安装的数据集。运行以下命令查看预安装数据集的完整列表:

data()

在本文中,将使用不同的预安装数据集。在进行图表可视化之前,重要的是要注意rbokeh图表是通过初始化一个figure()函数来创建的。这类似于一个空的画布,可以在上面布局,然后使用管道操作符添加更多层。数据输入是x、y和ly_geom(),这将指定使用的几何类型,如ly_pointsly_linesly_histly_boxplot等。

让尝试构建一个散点图。以预安装数据集中的Orange数据集为例。该数据集包括不同树木的年龄和周长的统计数据。可以使用以下命令打印出‘Orange’数据集的前几行:

head(Orange)

假设想看看不同树木年龄和周长之间的关系;散点图是一个很好的选择,可以看到所有的数据点。首先,将初始化一个‘figure()’。然后将创建一个‘ly_points’层,并传递所需的参数:

figure() %>% ly_points(x = age, y = circumference, color=Tree, data = Orange)

这里的结果图表包括每棵树的一个点,并显示了树木年龄和周长之间可能存在的关系。此外,悬停在点上可以查看使用hover函数添加的提示。其他交互功能,如平移和缩放,也是可用的。

接下来,将使用Orange数据集创建一个简单的折线图。对于年龄与周长的折线图,可以简单地指定x、y和data参数在‘ly_lines’层中,如下所示:

line_plot%ly_lines(x=age,y=circumference,color=Tree, data = Orange,width=3)

这里将结果图表赋值给‘line_plot’,然后通过写‘line_plot’来可视化图表。这是因为rbokeh图表是对象,可以稍后保存、检索和修改。还设置了线宽为3,以获得更粗的线条。

接下来将查看直方图。这里使用的是预安装数据集中的Flight frequency数据集。该数据集包括不同周日期的航班频率统计。将使用以下命令查看Flight frequency数据集的前几行:

head(flightfreq)

可以使用直方图来可视化数据中某一列值的分布。这里使用以下代码显示航班频率的分布。这里将使用ly_hist函数来查看变量的分布。

h % ly_hist(Freq, data = flightfreq, breaks = 30, freq = FALSE)

现在来绘制箱线图,这通常用于确定变量值的集中趋势。使用以下代码,将为Flight frequency数据集中的每一天制作一个箱线图。

figure(width = 600) %>% ly_boxplot(Freq,dow, data = flightfreq)

对于下一个图表,即条形图,使用的是Iris数据集,该数据集包含了萼片的长度和宽度,以及物种。

bar_chart% ly_bar(Species, data = iris) %>% theme_axis("x", major_label_orientation = 90)

可以使用网格图,它允许在同一个布局中放置多个图表。可以合并不同类型的图表,如条形图、折线图、散点图等。使用以下代码,将创建一个网格图。

tools <- c("pan", "wheel_zoom", "box_zoom", "box_select", "reset") p1 % ly_points(Sepal.Length, Sepal.Width, data = iris, color = Species) p2 % ly_points(Petal.Length, Petal.Width, data = iris, color = Species) grid_plot(list(p1, p2), same_axes = TRUE, link_data = TRUE)
  • rbokeh库是R中生成动态可视化的强大工具。
  • 可以使用rbokeh包从数据中创建交互式图表
  • 如何安装rbokeh包需要R和RStudio的安装。
  • 如何使用rbokeh创建图表。
  • 在网格布局中组织多个图表。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485