前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R03 绘图

R03 绘图

原创
作者头像
大豆虫
发布2023-03-16 16:36:53
1.1K0
发布2023-03-16 16:36:53
举报

分面 单分面

代码语言:javascript
复制
ggplot(data = iris) +
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length) + 
  facet_grid(~Species)

分面 双分面

代码语言:javascript
复制
dat = iris
#赋值,iris是内置数据,不要轻易动
dat$Group = 
ggplot(data = iris) +
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length) + 
  facet_grid(Group ~ Species)

为什么

代码语言:javascript
复制
sample(letters[1:5],150,replace = T)

几何对象可以叠加

代码语言:javascript
复制
 ggplot(data = iris) +
  geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length) + 
  geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length)
 
                       #局部设置
                       
 ggplot(data = iris) +
  geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length) + 
  geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length)
 
                       #全局设置

统计变换,以stat_开头

代码语言:javascript
复制
ggplot(data = diamonds)+
  stat_count(mapping = aes(x = cut))
  
  
  
#使用场景1: 使用表中数据直接作图,而不统计
fre = diamonds
ggplot(data = fre)+
  geom_bar(mapping = aes(x = cut, y = freq),stat = identity)
  
#使用场景2:不统计count,统计prop(比例)
ggplot(data = diamonds)+
  geom_bar(mapping = aes(x = cut, y = ..prop..),stat = ,group = 1)
  

练习 写出代码,叠加点图

代码语言:javascript
复制
data1 = iris

ggplot(data = data1)+
  geom_boxplot(mapping = aes(x = Species,
                             y = Sepal.Width,
                             fill = Species)
              )+
  geom_point(mapping = aes(x = Species,y = Sepal.Width))

位置关系

代码语言:javascript
复制
geom_jitter()



data1 = iris

ggplot(data = data1)+
  geom_boxplot(mapping = aes(x = Species,
                             y = Sepal.Width,
                             fill = Species,
                             ))+
  geom_jitter(mapping = aes(x = Species,y = Sepal.Width))
  
    

debug:

代码语言:javascript
复制
ggplot(data = iris,mapping=aes(x=Species,y=Sepal.Width))
  +   geom_boxplot(fill = c("red","green","blue"))
##映射和手动设置不一样,这是手动设置

手动设置没法加图例

完整绘图模板

代码语言:javascript
复制
ggplot()+
Geom_funtion(
  mapping = aes(),
  stat = ,
  postion = )+
coordinate_funtion()+
facet_function()

映射 aes()

代码语言:javascript
复制
ggplot(iris,
       mapping = aes(x = Sepal.Width,
                     y = Species))+
  geom_violin(mapping = aes(fill = Species))+
  geom_boxplot()+
  geom_jitter(aes(shape = Species))

aes()函数是ggplot2包中一个重要的函数,它用于将变量映射到图形属性上,如颜色、形状、大小、位置等。它的主要功能包括以下三个方面:

  1. 映射变量:aes()函数可以将数据框中的列名或变量名映射到图形属性上,例如将xy变量映射到点图的x轴和y轴上,或将fill变量映射到柱状图的填充颜色上。
  2. 生成图形:aes()函数可以与ggplot()和图形层函数(如geom_point()geom_bar()等)结合使用,生成图形对象。例如,使用ggplot()函数和aes()函数来指定数据集和变量映射,然后使用geom_point()函数生成散点图。
  3. 传递参数:aes()函数可以将参数传递给图形层函数,以便修改图形属性。例如,可以将color参数传递给geom_point()函数,以便修改散点图中点的颜色。 总之,aes()函数是ggplot2包中非常重要的一个函数,它可以帮助我们将数据可视化,并控制图形属性,使得我们能够更好地理解数据。

ggplot ggpubr的画图可以赋值给变量

可以用于图上加p值

代码语言:javascript
复制
p <- ggboxplot()
my_comparisons <- list()
 

ggplot2::ggsave 图片保存

代码语言:javascript
复制
ggsave
filename不能省略

通用保存:三段论p

代码语言:javascript
复制
pdf()
画图代码
dev.off()

神器eoffice: 把图片以可编辑的格式导出到ppt,可编辑!改字体!

代码语言:javascript
复制
library(eoffice)
topptx()

关闭画板 dev.off,解决前面画板太多卡住了无法画新图(任务管理器?)

代码语言:javascript
复制
dev.off()

dev.new()

dev.off()是一个用于关闭图形设备的函数。在R中,我们可以使用不同的图形设备来绘制图形,例如屏幕、PDF文件、PNG图像等。在使用某个设备绘制完图形后,我们需要关闭它以释放内存资源并保存图形(如果需要的话)。这时就可以使用dev.off()函数来关闭当前的图形设备。 dev.off()函数的主要作用有两个:

  1. 关闭当前的图形设备:当我们使用pdf()png()jpeg()等函数打开某个图形设备后,需要使用dev.off()函数来关闭它,以便释放内存资源和保存图形文件。
  2. 切换图形设备:在R中,可以使用pdf()png()jpeg()等函数打开多个图形设备。使用dev.off()函数可以切换到之前开设的某个设备上,以便继续在该设备上进行图形绘制。 需要注意的是,在使用dev.off()函数关闭图形设备之后,如果还需要绘制图形,就需要重新打开一个新的图形设备。否则,所有的图形绘制将会输出到同一个设备中,可能导致图形重叠或其他问题。

用 “因子” 解决 横坐标-分类变量 自定义的需求

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档