首页
学习
活动
专区
圈层
工具
发布

TidyFriday R 语言中桑基图的一些画法。。。

构造示例数据 首先我们需要构造一个示例数据集用于接下来的演示,这里我使用的是我的微信好友数据里面的省份、城市、性别变量。...,可以直接使用我的 friends.csv 数据集: # 使用微信好友数据 library(hrbrthemes) library(tidyverse) library(ggplot2) library...使用 sankeywheel 绘制 介绍桑基图画法的教程当然首先要介绍我自己写的 R 包啦,我有一个 sankeywheel 包可以用来绘制桑基图,其实我在 探索微信好友数据 的那个教程里面已经介绍过了这个...组合多个 HTML 控件可以使用 manipulateWidget 包: library(manipulateWidget) combineWidgets( sankeywheel( from...city, gender) 然后就可以绘制一幅基于 ggplot2 的桑基图了: ggplot(pg, aes( axis1 = prov, axis2 = gender, axis3 = city

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「R」ggplot2在R包开发中的使用

    在撰写本文时,ggplot2涉及在CRAN上的超过2,000个包和其他地方的更多包!在包中使用ggplot2编程增加了几个约束,特别是如果你想将包提交给CRAN。...尤其是在R包中编程改变了从ggplot2引用函数的方式,以及在aes()和vars()中使用ggplot2的非标准求值的方式。...引用ggplot2函数 与引用其他包类似,你需要在DESCRIPTION文件下的Imports条目下列出ggplot2,并使用::访问ggplot2提供的函数。...将ggplot2列入Depends会让你的包在被加载/测试的同时加载ggplot2。这会让其他想要使用你包的人通过::使用你的函数而无需加载它。...在包函数中使用 aes() 和 vars() 为了使用ggplot2创建图形,你很可能至少要使用一次aes()函数。如果你的图形使用了分面操作,你可能也会使用vars()用来指向绘图数据。

    11.3K30

    R 和 RStudio 的安装及 R Profile 的配置 & 爬取 CRAN 上的所有 R 包的名称、发布日期和标题

    konradsemsch/ggrapid", dependencies = TRUE) devtools::install_github("thomasp85/patchwork") install.packages('manipulateWidget...设置 R Profile R Profile 里面的代码会在启动 R 的时候自动运行,创建 R Profile 文件可以使用: usethis::edit_r_profile() 运行之后自动会打开一个文件...,在里面输入你想要在 R 启动的时候自动运行的代码即可,可以参考我的: Windows 系统: # 加载包 suppressMessages(suppressWarnings(library(ggplot2...= "MLingWaiMedium-SC" # 这是设定默认使用 Python 的位置,可以参考自己的 Python 安装位置设定: # reticulate::use_python('/opt/anaconda3...基于这种设定,使用 R 基础绘图系统绘图的结果将会是这样的: hist(iris$Sepal.Length) 使用 ggplot2 绘图的结果是这样的: library(ggplot2) ggplot

    4.3K40

    详谈如何使用ggplot2绘制火山图

    欢迎关注R语言数据分析指南 ❝最近VIP群内有朋友询问火山图的绘制方法,那么本节就来详细介绍在R中如何使用「ggplot2绘制火山图」,小编添加了详细的注释希望各位观众老爷能够喜欢。...❞ 小编已经搭建了一套稳定的真核转录组分析流程,可以完成「从原始数据分析到最终出结果分析文档」基本包含目前RNA_seq文章的所有分析内容。...「有数据分析需求的朋友可联系小编进行咨询」 导入数据 df <- read.delim("data.xls", header = TRUE, sep = "\t") 数据清洗 plot_data % janitor::clean_names() %>% # 使用 janitor 包的 clean_names() 函数将列名转换为小写 mutate(fold_change...) %>% # 仅保留指定的列 mutate( gene_type = case_when( fold_change >= 2 & adj_p_val <= 0.05 ~

    1.7K30

    R tips:使用ggplot2绘制空间坐标图

    空间数据提供的位置信息一般分为两种:细胞的质心和细胞的边界,以Xenium数据为例,这两种细胞坐标信息它都有包含。...theme(panel.background = element_rect(fill = "black")) p_xenium_boundary | p_xenium_boundary2 使用...另一个选择是使用geom_tile图层,它可以指定点的height和width,height和width的大小和使用的数据有关系,在调试出图时只需要指定好了它们的值,则点的遮挡关系就不会因为导出图片的大小而出现改变...如下图所示,两个图层的点大小尚未出现难以接受的遮挡或疏远。 但是只要调小一下导出图形的大小,geom_point的点遮挡就非常严重了,而geom_tile依然可以保持不遮挡不疏离的状态。...同样的,将上述图形放大后效果查看绘图细节如下: 本文仅作一种概览的绘图演示,具体的空间图绘制可以基于上述思路进行各种个性化的绘图调整。

    51810

    「R」ggplot2拼图包patchwork推荐与使用

    patchwork是基于ggplot2的拼图包,因为ggplot2本身没有强大的拼图语法,而一般使用的gridExtra与cowplot的拼ggplot2图形都存在不少问题。...下面进入正题,掌握好ggplot2与patchwork的基本用法,一般的图形都可以搞定了,并必要搞的很复杂。解决问题是关键,认真工作也是关键,画图看起来是,其实不是。.../patchwork") 导入: p_load(patchwork) # 或 # library(patchwork) 例子 patchwork的使用灰常简单,使用+把要拼的图加在一起就可以了。...我们不用创建对象,也可以像ggplot2本身使用一样相加。...另外,可以使用布局函数plot_layout对拼接细节进行更细致地指定,像每个图的范围,图形的排列。

    2K20

    ggplot2 案例:使用 ggplot2 绘制绘制一幅气泡地图展示各国疫情状况

    约翰·霍普金斯大学提供了一份数据集,使用这份数据集我们可以绘制一幅气泡地图展示这些确诊患者的分布,代码比较简单: 首先导入我们需要的几个 R 包: library(ggplot2) library(sf...) library(readr) library(dplyr) 导入世界地图并把 crs 转换成 4326(其实这份数据的 crs 就是 4326): worldmap % st_transform(crs = 4326) 把疫情数据读取进来并根据经纬度坐标把这个数据框转换成 sf 对象,同样使用 4326 投影坐标系,这样地图和数据才不会分家: read_csv...99", "100-999", "1,000-49,999", "50,000+")) + guides(color = guide_legend()) + labs(title = "新冠肺炎的全球分布...❝本文的附件和代码可以从知识星球下载:https://t.zsxq.com/iEYVjqr ❞

    1.4K10

    如何通过Google来使用ggplot2可视化

    第二部分 谈到画图,R语言里面有一个极其强大的工具,它是我们今天要谈论的主角:ggplot2 ggplot2 绘图作为R语言可视化阵营扛把子的地位是毋庸置疑的,我能与它结缘主要是因为自己本来没有正经地学过...我就明白我已经学会ggplot2的可视化了,虽然那时候的我画一个完整完美的图仍旧是各种磕磕碰碰,但并不影响我已经掌握了它的精髓。...大家由最近的直播我的基因组45—55讲应该可以看得出来,可视化方面我的确很弱,但我还是想分享一下自己是如何通过google来使用ggplot做可视化的!...而Lattice绘图系统相对高级一些,它会调用lattice包,其中包括 xyplot/histogram/stripplot/dotplot等命令,如果你使用 panel函数,还可以控制每个面板内的绘图...如果ggplot2只是有这39个内置图形函数那就太没意思了,每个映射都是可以细化调整的,包括X,Y轴,颜色,大小等具体的熟悉,只是需要时间来熟练使用!

    2.5K80

    ggplot2中ylim的坑

    ​在ggplot2中很容易出现一个修改坐标轴范围的问题,喜欢用ggplot2画图的需要注意一下。...ylim和coord_cartesian都是调整坐标轴范围,但是它们的结果是有可能不一样的,看下面的一个例子: data(diamonds) p <- ggplot(data = diamonds, aes...image 截取0到60的部分: ? image 可以看到第二张图跟原图是不一样的,比如Fair的第一个box原数据最高是超过60的,但是截取之后不到60了。这是一个不太容易注意到的坑。...这里是因为ylim是直接处理的数据导致的,比如例子中不在范围的数据就直接被移除。同等操作应该用coord_cartesian来实现。...coord_cartesian指定参数控制图形特定区域放大显示,只影响图形展示,不影响内部数据的值。即使用原数据作图,再对图形进行变动。

    1.6K20

    R语言ggplot2作图好玩的配色:使用NBA各球队logo的配色

    最近在学习R语言包的开发流程,看了之前分享过的关于吉普力工作室电影的配色包的代码,觉得里面的代码并不复杂,没准我也可以搞一个。...模仿这个包的代码,我尝试把NBA各个球队logo配色整理成了R语言ggplot2包作图的时候可以使用的配色函数。...颜色来源于链接 https://usteamcolors.com/nba-colors/ 首先将颜色整理成为一个yml格式的文件,基本文件格式如下 image.png 这里颜色最多的是太阳队,有7个可选...(name = name,direction = direction),...) } scale_color_nbalogo_d<-scale_colour_nbalogo_d 使用这些颜色 首先是读取颜色.../Rpackagedev/ggNBAlogo/",pattern = "*.R",full.names = T) lapply(x,source) 接下来使用太阳队和雷霆队的配色来举个例子 library

    72910

    ggplot2都有哪些使用不多但是却异常强大的图层函数

    要说ggplot2中那些使用不多但是却功能强大的图层函数,我首先想到的就是geom_rect、geom_linerange、geom_segment、geom_ploygon。...这四个函数分别定义了ggplot2中的矩形图、垂直线图(线范围图)、线段图、几何多边形图。...这四种图表类型独立使用的机会很少,一般都是作为图表的辅助信息,但是如果能恰到好处的使用,你会挖掘出很多新意。...geom_polygon() 最后一个可以说是很厉害了,几乎是ggplot2里面最为复杂、强大、适应性广的图层函数了,因为它使用极限思维,什么东西都是用尽可能多的点来拟合。...这个几个图形应该算是平时使用几率不会很高的图形了,但是用的恰到好处的话,能够做出非常惊艳的效果,赶快试一试吧~ 《R语言商务图表与数据可视化》的课程已经更新到空间地理信息数据可视化的章节了,感兴趣的童鞋

    2.1K30

    在 R 中使用 sf 和 ggplot2 绘制河流地图

    因此,我们只需要根据这些类分配不同的宽度。我们在下面使用 mutate 来创建宽度,并使用case_when来分配宽度。后者在SQL用户中是众所周知的。...边界框 在我们用ggplot2做魔术之前再走几步。我们的目标包括欧洲和中东,因此我们希望确保我们主要占领欧洲。我们通过制作一个边界框来做到这一点。让我们使用 WGS84 坐标定义边界框的参数。...我们首先绘制河流线,并根据定义的宽度根据类和宽度分配特定颜色。 由于我们的目标是将视野缩小到欧洲,因此我们使用coord_sf根据预定义的边界框设置纬度和经度限制。...我们将使用蓝色阴影来绘制我们的河流类。此外,我们将大小限制定义为从 0 到 0.3 的数值范围。我鼓励你玩这个范围,看看你会得到什么。...最后,我们使用一系列 alpha 值来使较大的河流在地图上突出显示。 # 4.

    3.6K21

    ggplot2中的position参数解析

    但它们之间有一些细微的差别: ❞ 1. position = "dodge" 这是position_dodge()的简写形式,它会自动计算需要的dodge宽度。不能设置preserve参数。...3. position_dodge2() 这是position_dodge()的一个扩展,提供了更多的控制,preserve= "single":保持每个单独的柱子的宽度不变,而不是整个组。...使用position="dodge"或position_dodge(),你会得到四个等宽的柱子(两个A=1和两个A=2),它们按B的水平分开。...使用position_dodge2(preserve="single"),如果A=1和A=2的柱子高度不同,那么A=1的两个柱子会比A=2的两个柱子更接近,因为它们的宽度被保留了。...vjust = 1.5, aes(label = paste("Mean", round(..y.., digits = 1))))+ theme_bw() # 使用黑白主题

    1.4K30
    领券