今天是我的可视化课程上线的第242天,目前学员421人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!
今天是我的可视化学习社群上线的第23天,目前学员125人,可视化学习社区以我的书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供课堂式教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面(双十二进群就送作者签名版纸质书籍)~~
参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。
上一篇推文给大家介绍了Julia语言中的主要可视化工具Makie,没想到受到很多同学的喜欢,今天这篇推文继续介绍Julia语言中,小编认为比较适合科研绘图的统计可视化工具-「AlgebraOfGraphics」,当然,你可以看作其为Julia语言版的ggplot2~~
AlgebraOfGraphics(AoG)是一种基于Julia语言的强大可视化工具,用于创建高度可定制的图形。它提供了一种直观的方式来描述数据可视化的构建过程,并支持在不同图层上添加绘图元素、应用转换操作、定义坐标轴和标尺等。它基于几个简单的构件,可以使用 +
和*
行组合。
AoG的设计目标是通过简洁和一致的语法来实现数据可视化的灵活性和可扩展性。它采用了一种类似于函数式编程的方法,将数据转换和图形构建过程分解为一系列可组合的操作。这种方法使得用户可以更容易地构建复杂的图形,同时保持代码的可读性和可维护性。
使用AoG,您可以通过以下步骤创建一个图形:
layer
函数来创建一个图层,并指定该图层所要显示的数据、绘图元素以及其他属性。例如,您可以创建一个散点图图层,其中x轴表示年龄,y轴表示收入,并使用红色圆点表示男性,蓝色圆点表示女性。filter
操作从数据集中过滤出特定的观测值,或使用scale
操作来调整坐标轴的范围。xaxis
和yaxis
函数来定义坐标轴,并使用title
函数为坐标轴添加标题。您还可以使用guide
函数来定义标尺的显示方式。+
运算符将多个图层组合在一起,形成一个复杂的图形(这和ggplot2非常像)。draw
函数将图形显示在屏幕上或保存为图像文件。此外,AoG还提供了许多其他功能和选项,例如调整图形的大小和比例、添加图例、应用主题等。它还支持各种绘图元素和统计变换,如线条、矩形、柱状图、直方图、箱线图等。
下面就给大家列举几个可视化案例,如下:
using AlgebraOfGraphics, CairoMakie
set_aog_theme!()
axis = (width = 225, height = 225)
penguin_frequency = data(penguins) * frequency() * mapping(:species)
draw(penguin_frequency; axis = axis)
Frequency plots
penguin_bill = data(penguins) * mapping(:bill_length_mm, :bill_depth_mm)
draw(penguin_bill; axis = axis)
Correlating two variables
plt = penguin_bill * mapping(color = :species)
draw(plt; axis = axis)
Correlating two variables 2
可以使用 "+"将两个数据叠加起来:
plt = penguin_bill * linear() * mapping(color = :species) + penguin_bill * mapping(color = :species)
draw(plt; axis = axis)
其他样式如下:
Smooth density plots
plt = penguin_bill * mapping(body_mass, color = :species, layout = :sex)
draw(plt; axis = axis)
AlgebraOfGraphics绘制3D图形的默认想过还是非常好看的~~ 好了,更多关于该工具的语法介绍和样例,大家可参考AlgebraOfGraphics官网[1]