首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

91-R可视化23-底层绘图系统grid学习之grob对象

,能够灵活地控制图形输出的外观和布局,但是grid包不提供创建完整图形的高级绘图系统,例如,ggplot2和lattice,而是提供绘制开发这些高级绘图的基础接口, 比如我目前的业务需求恰好就是常常ggplot...此外,除了grid 可以创建grob 对象外,还有其他包包括gridExtra 也可以创建grob 对象tableGrob。...2.1-第一个grob 对象 我们可以直接通过上述的grob 方法创建对应的grid 对象,比如: my_circle <- circleGrob(x = 0.5, y = 0.5, r = 0.5,...对象,也是基于grid 系统制作的,所以我们也可以用grid.draw来绘制ggplot 对象: wc_plot <- ggplot(cars, aes(x = speed, y = dist)) +...geom_point() grid.draw(wc_plot) 那么,我们可不可以通过grid.edit来个性化修改ggplot 的元素呢?

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

可视化绘制技巧|对多图合理排版布局

cowplot包是由Claus O.Wilke开发的,它是ggplot2的一个扩展包,可以将多幅图形合并到同一张图形当中。...ggdraw():初始化一个空的绘图画布;draw_plot():在绘图画布的某个位置放置一个绘图。draw_plot_label():在图的左上角添加一个plot标签。...需要注意的layout_matrix本质是要传入一个矩阵,用于描述每一行或者每一列绘制什么图形。...(c(1,1,1), c(2,3,4)) ## [,1] [,2] [,3] ## [1,] 1 1 1 ## [2,] 2 3 4 rbind函数本质是创建了一个二行三列的矩阵矩阵...图8 添加图形元素 上面的代码首先使用散点图中x轴对应的数据创建了一幅箱线图,然后使用y轴对应的变量绘制了一幅箱线图。然后将图形使用ggplotGrob函数转换成为一个图形元素(grob对象)。

2.5K20

106-R可视化30-底层绘图系统grid学习之重头创建ggplot对象之一

主要有两种场景,我们可能会需要自己创建一个绘图对象: 有时候,ggplot 并不能满足我们的一些绘图需求,比如: 上面提到的ggalt 与ggforce 这两个包出发点就是基于此的。...亦或是,有时候我们的绘图直接调用ggplot 调整比较麻烦,比如你的工作流对图片的格式,以及输出,比如统计学计算都有一定的要求,此时也可以手撕一个ggplot 对象;比如 [[58-R可视化7-用ggpubr...与ggstatsplot快速出高颜值图]] 这两个包就是基于此开发出了快速绘制高颜值ggplot 的方法。...,该方法就类似于我们在一般ggplot 作图时使用的方法了,geom_point; 1-创建ggproto 类 有如下几个设置的内容: GeomNEW <- ggproto("GeomNEW", Geom...内部的函数draw_key_*,abline, blank, crossbar 等等,基本和geom_** 对应; draw_panel 用来绘制具体的图,其会接受三个参数,data 也就是ggplot

77730

ggplot2学习笔记之图形排列

R包cowplot cowplot::ggdraw()可以将图形置于特定位置, ggdraw()首先会初始化一个绘图面板, 接下来draw_plot()则是将图形绘制于初始化的绘图面板中,通过参数设置可以将图形置于特定位置...其中: label:标签 x,y:控制标签位置 size:标签字体大小 下面通过一个例子来讲解如何将多个图形放置在特定的位置。...ggplot图形中嵌入图形元素 ggplot2::annotation_custom()可以添加各种图形元素到ggplot图中 annotation_custom(grob, xmin, xmax,...ymin, ymax) 其中: grob:要添加的图形元素 xmin, xmax: x轴方向位置(水平方向) ymin, ymax: y轴方向位置(竖直方向) ggplot图形中添加table density.p..., ymax = ymin+yoffset)+ # Insert ybp_grob inside the scatter plot annotation_custom(grob = ybp_grob,

2.4K20

ggplot2分面图形自定义添加回归曲线R值

in% c("Oceania","Americas"),year >=1982) 数据可视化 ❝在这个案例中我们介绍使用「stat_quant_eq」函数自动添加拟合曲线的R值与P值❞ df %>% ggplot...element_blank()) ❝可以看到使用「ggpmisc::stat_poly_eq」函数很轻松的添加上了R值与P值,但是实际中也许会存函数无法自动添加的情况,那么就需要使用代码自定义去添加,如果图表只有一个那样操作很是轻松...,但若是图表采用分面的形式绘制那么就需要自定义函数来添加文本 ❞ 自定义注释函数 annotation_custom2 <- function (grob, xmin = -Inf, xmax = Inf...Inf, data) { layer(data = data, stat = StatIdentity, position = PositionIdentity, geom = ggplot2...x=0.1, y=0.82, hjust=0,gp=gpar(col="#00A087FF", fontsize=10))) 案例二 df %>% ggplot

76610

商业风统计插图太难绘制?!快使用这个工具吧,一行代码轻松搞定~~

今天小编给大家推荐一种绘制另类分布图的绘制方法,其可以绘制出经济学人风格的箱线分布统计图。当然,你可以将其看作是箱线图的另外一种可视化形式。...基础的第三方包,其可以任意添加其他图层(geom_),当然,其目的是帮助我们绘制出经济学人风格样式的箱线统计图,主要包含的绘图函数如下: add_econodist_legend():获取经济学人风格的图例...(econodist legend ) econodist_legend_grob():创建与Econodist图表一起使用的图grob。...geom_econodist():经济学人图层绘制。 left_align():帮助将ggplot2绘图组件左侧。 theme_econodist():经济学人风格的ggplot2绘图主题。...element_markdown(face = 'bold',size = 12) ) %>% # 添加额外图例 add_econodist_legend( econodist_legend_grob

45120

经济学人风格统计分布图怎样绘制?!一行代码搞定

今天小编给大家推荐一种绘制另类分布图的绘制方法,其可以绘制出经济学人风格的箱线分布统计图。当然,你可以将其看作是箱线图的另外一种可视化形式。...基础的第三方包,其可以任意添加其他图层(geom_),当然,其目的是帮助我们绘制出经济学人风格样式的箱线统计图,主要包含的绘图函数如下: add_econodist_legend():获取经济学人风格的图例...(econodist legend ) econodist_legend_grob():创建与Econodist图表一起使用的图grob。...geom_econodist():经济学人图层绘制。 left_align():帮助将ggplot2绘图组件左侧。 theme_econodist():经济学人风格的ggplot2绘图主题。...element_markdown(face = 'bold',size = 12) ) %>% # 添加额外图例 add_econodist_legend( econodist_legend_grob

70020

R包:gtable包用于处理ggplot2图像

ggplot2是基于grid的绘图工具,它绘制的图像其实是由多个grob(grid graph object)组成的,比如一张点图,它的标题是titleGrob,点图的基本单元包括pointsGrob。...gtable进行拼图 如果要使用gtable进行拼图,只需要创建一个1行2列的gtable对象,然后每个位置填入相应的图像即可。 填充图形是使用的gtable_add_grob实现的。...# 将待拼图转换为gtable对象(grob table) # 以下两种方式都可以,函数来源于ggplot2 g1 <- ggplotGrob(p1) g2 <- ggplot_gtable(ggplot_build...(p2)) # 创建一个布局为一行两列的gtable对象,用于放置上述的两个对象 # 每一个位置的长宽都是1 null fig_combined <- gtable(widths = unit(c(1...gtable进行嵌图 gtable也可以进行嵌图,思路和拼图是一样的,先构造一个新gtable布局,然后将图片依次嵌入。

2.2K30

R tips: ggplot图层编写

一个ggplot对象的渲染过程 一个ggplot2的渲染过程分为两步: (1)ggplot_build函数将ggplot对象进行各种数据和坐标变换,生成一个ggplot_build对象; (2)ggplot_gtable...ggplot_build函数的具体处理过程如下: layer: ggplot对象在绘制过程中,首先是使用Layer的setup_layer函数处理layer相关的数据处理,这里一般不处理数据,只是一个hook...Geom: 在ggplot_gtable的第一个环节就是调用layer的draw_geom函数,draw_geom调用每个layer的draw_layer函数完成grob对象创建、 其他从略 简单来说就是...,一个图层的渲染是先生成一个layout布局,然后调用Stat的相关参数对数据进行变换,接着Geom使用变换后的数据进行绘制图形对象的数据准备工作。...在ggplot_gtable的第一个环节就是调用Geom的图形对象绘制函数生成grob对象。 所以一个图层的Stat和Geom其实是分别用于数据变换和图形绘制

22620

R问题|数值模拟流程记录和分享

新建了一个R脚本,绘制图形 文件名叫 plot_all.r。主要功能是将刚才每个不同参数的脚本得到的数据绘制图形,然后使用相应的包将他们合成一个图。代码缩略图可见文末,这里先介绍各个函数的功能。...如果对ggplot2绘制还存在一定难度的朋友,可以在公众号输入[可视化文稿]得到教程文稿,再结合我的b站(账号:庄闪闪)“R可视化教程”,进行快速的入门学习。...plot_5_methods功能:使用 ggplot2 包绘制一个数据集中某一列参数(b/c/d/sigma)的图形。...all_plot_compare 功能:绘制一个数据集所有列,并将其横向合并,结果如下所示: all_plot_compare = function(data1 = all_data_0.3,str1...all_plot_compare函数结果 加载Rdata并绘制图形 前面两函数基本可以绘制一个数据集的所有图形了,之后我要将不同数据集加载进来(例如:load("~/Desktop/2021.06.06

88310
领券