ggalign | 轻松绘制这种超复杂可视化图表~

文摘   2024-10-23 11:42   江苏  
  • 前言

    • 一、「ggalign」-轻松绘制超复杂可视化结果~
    • 二、可视化学习圈子是干什么的?
    • 三、系统学习可视化
    • 四、猜你喜欢

前言

我们的数据可视化课程已经上线啦!!目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!

我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

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

「ggalign」-轻松绘制超复杂可视化结果~

最近,在给我们的R语言数据可视化课程新增内容时,发现了一个非常好用的可视化图表绘制工具-「ggalign」,一个专门对绘图布局调整和绘图注释的精细控制的可视化工具,让你可以创建出复杂的、具有出版质量的可视化图形。

ggalign能做什么?

ggalign 专注于对多个图中的观测数据进行对齐。它利用vctrs软件包中的 "观察数 "或 NROW() 函数来保持图块组织的一致性。

如果您曾为如何对齐具有独立排序的图块(如树枝图)或在多个图块中应用一致的分组或排序(如 k-means 聚类)而苦恼,galign 就是为了让这一切变得更容易而设计的。

该软件包与 ggplot2无缝集成,可灵活使用其 geoms、scales 和其他组件进行复杂的可视化。

可通过如下方式进行安装:

install.packages("ggalign")

ggalign特点

  1. 与 ggplot2 的集成 ggalign 构建在 ggplot2 的基础之上,因此用户可以利用 ggplot2 的所有功能和灵活性,同时获得增强的对齐功能。
  2. 条形图对齐 该包特别适合生成对齐的条形图,用户可以轻松创建多个条形图并进行横向或纵向对齐,以便于比较不同类别或组别的数据。
  3. 美观的图形设计 ggalign 提供了多种预设的样式和主题,用户可以选择以增强图形的视觉效果。这使得生成的图形更加美观,适合用于报告或展示。
  4. 灵活的布局选项 用户可以灵活地调整图形的布局,包括图例位置、轴标签和标题的样式,从而满足不同的可视化需求。
  5. 自动对齐功能 包含自动对齐的功能,可以确保多个图形在同一坐标系下对齐,避免因数据规模不同而导致的比较困难。
  • 主要特性
  1. 集成决策树:

  • ggparty 允许用户从 party 或 partykit 包中生成的决策树创建可视化图形。
  • 可以通过 ggplot2 的语法轻松地定制和扩展图形。
  • 丰富的可视化选项:

    • 提供多种图层(layers),用户可以根据需要添加文本标签、颜色映射和其他视觉元素。
    • 支持分面(faceting),可以根据分类变量进行子图的创建。
  • 易于使用:

  • 对于熟悉 ggplot2 的用户,ggparty 提供了相似的语法结构,降低了学习曲线。

    可视化案例

    这一小节我们直接给出ggalign绘制的各种可视化图形结果,如下:

    • 基础用法
    library(ggalign)
    set.seed(123)
    small_mat <- matrix(rnorm(81), nrow = 9)
    rownames(small_mat) <- paste0("row", seq_len(nrow(small_mat)))
    colnames(small_mat) <- paste0("column", seq_len(ncol(small_mat)))

    # initialize the heatmap layout, we can regard it as a normal ggplot object
    ggheatmap(small_mat) +
        # we can directly modify geoms, scales and other ggplot2 components
        scale_fill_viridis_c() +
        # add annotation in the top
        hmanno("top") +
        # in the top annotation, we add a dendrogram, and split observations into 3 groups
        align_dendro(aes(color = branch), k = 3) +
        # in the dendrogram we add a point geom
        geom_point(aes(color = branch, y = y)) +
        # change color mapping for the dendrogram
        scale_color_brewer(palette = "Dark2")


    • 复杂热力图样式
    heatmap_with_four_side_guides <- ggheatmap(small_mat) +
      scale_fill_viridis_c(name = "I'm from heatmap body") +
      theme(axis.text.x = element_text(angle = -60, hjust = 0)) +
      hmanno("t") +
      align_dendro(aes(color = branch), k = 3L) +
      scale_color_brewer(
        name = "I'm from top annotation", palette = "Dark2",
        guide = guide_legend(position = "right")
      ) +
      hmanno("l") +
      align_dendro(aes(color = branch), k = 3L) +
      scale_color_brewer(
        name = "I'm from left annotation", palette = "Dark2",
        guide = guide_legend(position = "top")
      ) +
      hmanno("b") +
      align_dendro(aes(color = branch), k = 3L) +
      scale_color_brewer(
        name = "I'm from bottom annotation", palette = "Dark2",
        guide = guide_legend(position = "left")
      ) +
      hmanno("r") +
      align_dendro(aes(color = branch), k = 3L) +
      scale_color_brewer(
        name = "I'm from right annotation", palette = "Dark2",
        guide = guide_legend(position = "bottom")
      ) &
      theme(plot.margin = margin())
    heatmap_with_four_side_guides

    • 其他可视化案例

    更多关于ggalign工具包中的其他使用语法和绘图函数,感兴趣的同学可阅读:ggalign工具包官网[1]

    更多好看的商业图表绘制案例,可以参与我们的商业图表绘制教程

    我的新书《科研论文配图绘制指南基于R语言》已经上市啦,作者签名版链接如下:

    《科研论文配图绘制指南基于Python》作者专属半价优惠如下:

    可视化学习圈子是干什么的?

    可视化学习圈子是书籍「科研论文配图绘制指南-基于Python」一书的学下圈子:主要通过以下几个方面,给大家带来比纸质书籍更丰富的学习内容:

    • 视频教学,和读者零距离互动交流
    • 及时修正勘误和定期新增绘制知识点
    • 拓展衍生,绘图知识点远超书籍本身
    • 直播视频+拓展资料+答疑,学习更高效

    「PS」:我们直播教学内容为课堂式教学,原作者带着大家对书籍一章、一节、一页的进行教学。而且直播的视频都会通过剪辑后整理成课程,圈子中的同学可以免费、反复观看。当然,新增内容和定期答疑,直播也是如此。

    • 为何会有这个书籍学习社群?无门槛的微信群难免会鱼龙混杂,问题和质量都无法得到保证,而且一些关键问题经常被淹没,且没有沉淀价值。

    • 随着添加我微信的人日益增多,向我提问的人也越来越多,随便回答一下就太不负责任了;不回答也不是很好;如果都仔细回答,我也有自己的工作并且确实很忙,真的有点心有余而力不足!所以我才会建立这么一个渠道来沉淀我的可视化技巧和分享经验,以及给大家提供一个坚持学习的平台。

    微信扫码下方二维码即可参与我们的书籍学习圈子啦:

    微信扫码即可加入学习圈子

    系统学习可视化

    当然,在学习数据可视化的道路上,你也有很多问题得不到解答,也可以加入我们的可视化课程(可视化系列课程推文)后,在学员群里和大家一起谈论,一起进步,或者直接向我提问。如果我觉得你的问题很具有普适性,我会把它写成文章发布在公众号上,让更多人看到,有关我们数据可视化系列课程的服务内容,可以参考下面的 阅读原文

    猜你喜欢

    不是?!这种图一行代码就搞定了,超简单....
    这图这么多人问!?赶紧给大家复现出来~~..
    ggpubr!一键绘制出版级论文配图,绘图小白福音......
    tidyterra!空间数据处理、可视化神器...
    Antarctic-Plots!不用ArcGIS,我照样可以画出惊艳的地图...
    比Matplotlib合并子图更方便!patchworklib让我告别PS拼图...
    Xarray,不用ArcGIS,所有地理空间绘图全搞定...
    Nature都推荐的箱线图(Boxplot)绘制工具长啥样?免费、在线、灵活操作...?
    完美解决Matplotlib绘图中、英文字体混显问题..
    MATLAB绘图不好看?!不是,你是还没发现这几个工具包吧..
    不是,这个地理数据工具这么强的吗?数据处理、可视化它都行..
    这种环形图太难画?!带你一行代码搞定..
    不是,这封面图这么多人问的吗?教程来了
    不用Seaborn,这个工具也能绘制超炫的统计图形···
    NetworkX,网络结构图最强绘制工具·····

    参考资料
    [1]

    ggalign工具包官网: https://yunuuuu.github.io/ggalign/index.html。


    DataCharm
    定期更新与科研学术有关的内容,比如论文插图绘制技巧、实用Python/R拓展包解读、作图软件(Veusz、Qrigin等)教程以及最前沿科研方法等。
     最新文章