前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >和ggplot2一样简单绘图!这个Julia工具包真得学了...

和ggplot2一样简单绘图!这个Julia工具包真得学了...

作者头像
DataCharm
发布2023-12-12 14:27:30
1880
发布2023-12-12 14:27:30
举报
  • 前言

  • 一、AlgebraOfGraphics-Julia版的ggplot2
  • 二、可视化学习圈子是干什么的?
  • 三、系统学习可视化
  • 四、猜你喜欢

前言

今天是我的可视化课程上线的第242天,目前学员421人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!

今天是我的可视化学习社群上线的第23天,目前学员125人,可视化学习社区以我的书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供课堂式教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面(双十二进群就送作者签名版纸质书籍)~~

参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。

AlgebraOfGraphics-Julia版的ggplot2

上一篇推文给大家介绍了Julia语言中的主要可视化工具Makie,没想到受到很多同学的喜欢,今天这篇推文继续介绍Julia语言中,小编认为比较适合科研绘图的统计可视化工具-「AlgebraOfGraphics」,当然,你可以看作其为Julia语言版的ggplot2~~

AlgebraOfGraphics(AoG)是一种基于Julia语言的强大可视化工具,用于创建高度可定制的图形。它提供了一种直观的方式来描述数据可视化的构建过程,并支持在不同图层上添加绘图元素、应用转换操作、定义坐标轴和标尺等。它基于几个简单的构件,可以使用 +*行组合。

AoG的设计目标是通过简洁和一致的语法来实现数据可视化的灵活性和可扩展性。它采用了一种类似于函数式编程的方法,将数据转换和图形构建过程分解为一系列可组合的操作。这种方法使得用户可以更容易地构建复杂的图形,同时保持代码的可读性和可维护性。

使用AoG,您可以通过以下步骤创建一个图形:

  1. 创建一个数据源:您可以使用任何数据集作为数据源,例如CSV文件、数据库查询结果或DataFrame对象。
  2. 定义图层:您可以使用layer函数来创建一个图层,并指定该图层所要显示的数据、绘图元素以及其他属性。例如,您可以创建一个散点图图层,其中x轴表示年龄,y轴表示收入,并使用红色圆点表示男性,蓝色圆点表示女性。
  3. 添加转换操作:您可以使用各种转换操作来修改数据或图形。例如,您可以使用filter操作从数据集中过滤出特定的观测值,或使用scale操作来调整坐标轴的范围。
  4. 定义坐标轴和标尺:您可以使用xaxisyaxis函数来定义坐标轴,并使用title函数为坐标轴添加标题。您还可以使用guide函数来定义标尺的显示方式。
  5. 组合图层:您可以使用+运算符将多个图层组合在一起,形成一个复杂的图形(这和ggplot2非常像)。
  6. 显示图形:最后,使用draw函数将图形显示在屏幕上或保存为图像文件。

此外,AoG还提供了许多其他功能和选项,例如调整图形的大小和比例、添加图例、应用主题等。它还支持各种绘图元素和统计变换,如线条、矩形、柱状图、直方图、箱线图等。

下面就给大家列举几个可视化案例,如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
penguin_bill = data(penguins) * mapping(:bill_length_mm, :bill_depth_mm)
draw(penguin_bill; axis = axis)

Correlating two variables

代码语言:javascript
复制
plt = penguin_bill * mapping(color = :species)
draw(plt; axis = axis)

Correlating two variables 2

可以使用 "+"将两个数据叠加起来:

代码语言:javascript
复制
plt = penguin_bill * linear() * mapping(color = :species) + penguin_bill * mapping(color = :species)
draw(plt; axis = axis)

其他样式如下:

Smooth density plots

代码语言:javascript
复制
plt = penguin_bill * mapping(body_mass, color = :species, layout = :sex)
draw(plt; axis = axis)

AlgebraOfGraphics绘制3D图形的默认想过还是非常好看的~~ 好了,更多关于该工具的语法介绍和样例,大家可参考AlgebraOfGraphics官网[1]

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • AlgebraOfGraphics-Julia版的ggplot2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档