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

「R」ggplot结合点图与箱线图的问题与解决

最近在使用ggplot2对箱线图叠加点图是发现奇怪的现象,只要我改变点的形状,绘图就出问题了。 下面我通过一个简单的示例展示这个问题。...我们先生成一组简单的数据,并绘制一个正常的叠加图: library(ggplot2) library(dplyr) head(mtcars) ## mpg cyl...下面就是见证奇怪的时刻: set.seed(1) ggplot(data, aes(x, y, fill = fill)) + geom_boxplot() + geom_point(aes(shape...而我们代码的唯一修改就是增加了shape映射以修改点的形状。 我百思不得其解,ggplot完全没有干好它该干的事情嘛。...几何对象无法利用fill这个属性,那么需要让因此我们可以手动指定数据的分组,让绘点的这个图层意识到分组的存在。

2.2K10

R语言ggplot2绘制平滑曲线的折线图简单小例子

R语言ggplot2包用来画折线图的函数默认应该是带有棱角的,如果想要实现平滑的曲线好像不太容易,之前的推文介绍过 ggalt这个包 R语言的ggplot2做平滑的折线图简单小例子 R语言ggplot2...常规的折线图 library(ggplot2) df<-data.frame(x=1:10, y=sample(1:10,10)) ggplot(df) + geom_line...平滑的可以借助 geom_bump()函数 来自于ggbump这个R包 帮助文档 https://github.com/davidsjoberg/ggbump 这个链接还有很多漂亮的图 比如 ?...这个数据可视化的类型具体的应用场景是啥,我暂时还不知道 突然想到可以用这种方式来画平滑的折线图 最简单的平滑折线图 #install.packages("ggbump") library(ggbump...) library(ggplot2) library(dplyr) df<-data.frame(x=1:10, y=sample(1:10,10)) ggplot(df

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

    答读者问:R语言ggplot2做折线图的几个细节

    给出的示例图如下 今天的推文介绍一下使用R语言的ggplot2画折线图的这几个细节如何调整 ggplot2里画折线图的函数是geom_line(),这个函数是按照y值的大小从左往右,如果要实现上图所示折线的方向可以向左拐...,可以使用geom_path()函数,比如 首先是构造一个数据 x<-c(1,2,3,2,3,5) y<-c(1,2,3,4,5,6) dat<-data.frame(x=x,y=y) 可以比较一下...(ggplot2) library(patchwork) p1ggplot(data=dat,aes(x=x,y=y))+ geom_line()+ geom_point(size=5)+...(size=5)+ ggtitle("geom_path()")+ theme_bw() p1+p2 首先是y轴数值从上面依次增大 这个我的做法是更改原始数据,把数据的正值都改成负值,比如...geom_point(size=5) p3+p4 改成负值然后再修改坐标轴的标签,对坐标轴的标签取绝对值就可以 p4+ scale_y_continuous(labels = abs) 第二个问题是

    66010

    R可视化:不一样的ggplot2箱线图

    箱线图(Boxplot)是一种用于展示一组数据分布特征的图形,它能够提供以下信息:中位数:箱线图中的中位线表示数据的中位数。...网格状箱线图patternplot 是一个 R 包,它提供了创建网格状箱线图的功能,这种图表通常用于展示多个组别或条件下的数据分布。...patternplot 包的 pattern_boxplot() 函数可以生成这样的图形,它允许用户在网格中为每个子集绘制箱线图,从而可以直观地比较不同组别或条件下的数据。...下面是box1参数的详细解释:data: 包含要展示的数据的数据框。x: 箱线图的 x 轴变量,通常是分组的因子。y: 箱线图的 y 轴变量,表示要展示的数值数据。...R包library(tidyverse)library(ggplot2)​rm(list = ls())options(stringsAsFactors = F)导入数据data("iris")​head

    2.2K00

    R语言ggplot2分组箱线图添加误差线的简单小例子

    ggplot2 更改图例的顺序 箱线图添加误差线这个自己老是记不住,每次作图都得现查,今天的推文记录一下实现代码,方便自己以后查看。...::melt(df,id.vars="Species") -> dfa 基本箱线图 ggplot(data = dfa, aes(x=Species,y=value,fill=Species...,就是把代码写到boxplot的前面,然后加一些基本的美化 ggplot(data = dfa, aes(x=Species,y=value,fill=Species))+ stat_boxplot...image.png 这里还有一个疑问是 箱线图中间的线好像是中位数,如何把这个线更改为平均值呢?...暂时没有想明白 今天推文的示例数据和代码可以直接留言20210929获取 欢迎大家关注我的公众号 小明的数据分析笔记本 小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子

    5.9K10

    R语言ggplot2做箱线图的时候如何添加表示平均值的线

    箱线图展示的就是分位数,中间的线表示的是中位数,也就是50%分位数,如果非要在箱线图上画上表示平均值的线段也是可以实现的,今天介绍一下实现代码 示例数据集我们用R语言的内置数据集PlantGrowth...image.png 首先是画一个最普通的箱线图 df<-read.csv("PlantGrowth.csv") library(ggplot2) library(tidyverse) p1ggplot...()函数可以获取画箱线图用到的数据 ggplot_build(p1)$data[[1]] image.png 我们利用原始数据计算一下平均值,然后将数据集的平均值添加到这组数据中 df %>%...不知道有没有比较好的办法 (猜测geom_boxplot函数里应该是有一个步骤计算中位数的,试着看看源代码,看能不能把中位数的代码改为平均值) 还有一个问题是如果是分组的箱线图那么应该如何来实现呢?...欢迎大家关注我的公众号 小明的数据分析笔记本 小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记

    7.2K50

    99-R可视化27-超级多的ggplot绘图主题大全

    theme_void() 去除非数据外的全部内容。 theme_classic() # 经典ggplot 主题,白板背景。 但这个theme_bw 我还是挺喜欢用的。..., and geoms for ggplot2 (github.com)[1] 里面丰富出了非常多的主题: 主题名 描述 theme_base 类似于 ggplot 默认设置 theme_calc 类似...theme_foundation是一个完整的主题,只有最小的元素定义。它相比于theme_gray或theme_bw更容易通过扩展创建新的主题,因为那些主题和有着较深层次的主题定义。...theme_stata 基于 Stata graph schemes的主题 theme_tufte 基于数据墨水最大化和图形设计的Edward Tufte 定量信息的视觉显示。...同样的ggthemes 也为每种主题配套了相关的颜色模板: p ggplot(mtcars, aes(mpg, disp, colour = factor(am))) + geom_point

    1.7K10

    原创 | R的基础及进阶数据可视化功能包介绍

    在拥有空白画布的基础上,我们可以使用R自带的可视化功能语句plot()来描绘散点图、折线图、柱状图等,辅助用户用于观察整个数据集的潜在趋势。...R数据可视化工具 在R语言里,除了R自带的可视化工具plot(),还有很多精彩的工具包,比如ggplot2, 以及gganimate。 ggplot2 ggplot2 是R中被广泛应用的绘图包。...不同于R plot(),我们可以将ggplot()的绘制理解为两个步骤:首先我们先将需要的数据以及颜色等一些参数输入ggplot()中,其次叠加geom_*()语句,来绘制指定的图表的几何图像类型,比如散点图...在ggplot2的基础上,gganimate允许用户定义一个变量作为每一帧变化的参照。...上述代码中,与ggplot2不同的是黄色划线部分。 ”title = ‘ Year: {frame_time} ’‘’代表了每一帧图表的标题。

    4.9K30

    R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

    p=9766  在某些情况下,你可能希望通过在每帧中添加数据并保留先前添加的数据来进行动画处理。 现在,我们将通过制作点线图的动画来探索。...因为这是一个点-线图,它包括geom_line与geom_point层。我们可以将轮廓设置color为黑色,然后aes根据温度使用映射将其填充为颜色value。...transition_reveal其默认是显示线条,仅绘制当前帧的点: 要创建点的累积动画,使用如下代码: shadow_mark 保留先前帧中的数据。...使用for循环绘制并保存每年的图表 要制作点和线的累积动画,我们需要编写一个循环为每帧创建一个单独的图像。...然后,它创建一个名为的R对象chart,这是从该数据绘制的静态ggplot2图表。 然后,使用该ggsave函数以定义的尺寸和分辨率保存该图表,从而在循环上进行进度更新。

    32000

    R语言ggplot2:单元格为方块的热图简单小例子-2

    昨天公众号后台有人留言作图,示例图如下 image.png 我选择使用R语言的ggplot2来实现,这个是箱线图和热图的拼接,右侧的热图可以借助geom_point()函数实现,将点的形状改为正方块,数值按照正负来映射颜色...继续昨天推文的内容 R语言ggplot2绘图单元格为方块的热图—1—调整图例的位置(点击蓝色字体直达昨天的推文) 今天的推文记录一下如何实现这个热图 首先构造一份数据集 set.seed("20200407...rownames(df)<-paste0("X",1:6) write.csv(df,file = "20210407_example.csv",quote = F) image.png 这样是宽格式数据...="Sample") head(df1) image.png 构造数据 library(dplyr) df1%>% mutate(group_1 = case_when( value <=...0.5 ~ 0.4, value > 0.5 & value <= 0.7 ~ 0.6, value > 0.7 & value <= 1 ~ 0.8, )) -> df2 构造数据用于添加线段

    3.6K20

    R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

    p=9766  在某些情况下,你可能希望通过在每帧中添加数据并保留先前添加的数据来进行动画处理。 现在,我们将通过制作点线图的动画来探索。...因为这是一个点-线图,它包括geom_line与geom_point层。我们可以将轮廓设置color为黑色,然后aes根据温度使用映射将其填充为颜色value。...transition_reveal其默认是显示线条,仅绘制当前帧的点: 要创建点的累积动画,使用如下代码: shadow_mark 保留先前帧中的数据。...使用for循环绘制并保存每年的图表 要制作点和线的累积动画,我们需要编写一个循环为每帧创建一个单独的图像。...然后,它创建一个名为的R对象chart,这是从该数据绘制的静态ggplot2图表。 然后,使用该ggsave函数以定义的尺寸和分辨率保存该图表,从而在循环上进行进度更新。

    2.5K11

    R语言ggplot2绘图单元格为方块的热图—1—调整图例的位置

    image.png 我选择使用R语言的ggplot2来实现,这个是箱线图和热图的拼接,右侧的热图可以借助geom_point()函数实现,将点的形状改为正方块,数值按照正负来映射颜色,按照一定的数值来映射大小...基本的思路有了。今天的推文记录一个小知识点是 如何将图例远离主图并且给放到右上角去 首先是构造一份数据 df<-data.frame(x=LETTERS[1:4],y=1:4) df ?...image.png 拉大图例与主图的距离 使用theme()函数中的legend.box.margin参数来调节 ggplot(data=df,aes(x=x,y=y))+ geom_col(aes...image.png 还有另外两个知识点是调节图例的标题和图例的距离以及图例的文本和图例的距离 分别需要用到legend.spacing.y和legend.spacing.x参数 ggplot(data=...image.png 欢迎大家关注我的公众号小明的数据分析笔记本 小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记

    4.4K20

    跟着Nature学作图:R语言ggplot2分组折线图展示多个基因组的Nx

    (明明记得之前是看到过eQTL的代码,但是这次再翻还找不到了) 今天的推文我们试着复现一下论文中的Figure1b 分组折线图 image.png 如果要展示多个基因组的N50,用这个图还挺方便的,...现在泛基因组相关的论文大部分都会放这个图,比如人类泛基因组的论文里。...image.png 横轴对应的是N几,纵轴对应的是N几的长度,这篇论文里用不同线型代表不同的测序技术,个人认为用颜色来区分可能会好一些 部分数据截图 image.png 读取数据 library(...MOESM5_ESM.xlsx", sheet = "Fig1b", skip = 1) head(dat) 作图代码 library(ggplot2...) ggplot(data=dat,aes(x=Nx,y=Contig,group=Name))+ geom_line(aes(color=Tech))+ theme_classic()+

    76930

    R语言从入门到精通:Day17 (ggplot2绘图)

    在之前的教程中,我们在学习各类数据分析方法的过程中学习创建了各种各样的普通图形和特殊图形,它们大部分都是利用R的基础绘图系统创建的。...四种常见的作图系统中,ggplot2包基于一种全面的图形“语法”,提供了一种全新的图形创建方法。这个包极大地扩展了R绘图的范畴,提高了图形的质量。...函数ggplot()虽然设置图形,但没有自己的视觉输出,而是使用一个或多个几何函数向图中添加了几何对象(简写为geom),包括点、线、条、箱线图和阴影区域。...图6,小提琴图和箱线图的组合 ? 讲到这里,必须要强调使用ggplot2的最终目的还是为了更好的理解数据。而为了理解数据,在一个图中画出两个或更多组的观察值通常是很有帮助的。...ggplot2包学习起来可能有些困难,同时网上也有很多学习资料,一系列ggplot2的函数及相应的例子可以在http://docs.ggplot2.org上找到,但最重要的还是要多动手!多动手!

    6.9K31

    R语言可视化——关于ggplot所支持的数据地图素材类型

    做了这么多数据地图,是时候该总结一些心得和理念了,今天这篇讨论ggplot2所支持的数据地图素材格式。...虽然从数据存储格式上来讲我们分为shp素材、json素材,但是由于在R语言中使用ggplot2作图,所支持的数据集对象大致又可分为两类,它们都可以由shp、json数据文件转化而来。...这两种格式的数据集所描述的信息差不多是一致的。第一种格式(sp)是R语言绘图比较传统的数据格式,它将地理信息数据分割为两大块:描述层和映射层。...rgdal包可以替代sp包导入shp数据(事实上它也支持json数据的导入,似不似很强大),而sf包则是新崛起,支持sf对象格式导入的包,而且ggplot2率先给这个包开了绿灯,直接创建了geom_sf...R语言中可以制作数据地图的包有很多(我长用到的): #需要自己准备数据地图素材: map() ggplot(china_map1)+geom_line() #只能做轮廓图 ggplot(china_map1

    2.8K41

    ggplot2--R语言宏基因组学统计分析(第四章)笔记

    ggplot2的第二个显著特性是它使用数据帧,而不是单独的向量。因此,在使用该包创建绘图之前,如果数据是矢量,则需要将数据转换为数据帧。...提供给gglot()本身或提供给各个geom以创建绘图的所有数据都包含在数据帧中。...空图 应该在aes()函数中指定数据帧中需要绘图的任何信息。在本例中,我们通过aes()函数实现美学映射:分别指定x和y变量。但是,只绘制了一个空白的GGPlot。...要实际绘制散点图或折线图,我们必须使用geom图层显式地请求gglot()。对象p是类ggPlot的R S3对象,由数据和其他包含关于该图的信息的组件组成。...如果添加margin = TRUE的选项,会多一个所有数据的图。

    7.3K20

    R语言 数据框、矩阵、列表的创建、修改、导出

    数据框数据框的创建数据框来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据函数...data.frame生成指定数据框的列名及列的内容,如代码所示,此时列名不需添加"",df1为变量名,格式为列名=列的向量*matrix矩阵与向量一样只允许同一种数据类型,否则会被转换,可以理解为二维的向量...c(1,3),1:2] #取出第1、3行的1、2列数据,取多列的时候需要组织成合适的向量df1[,-ncol(df1)] #删去最后一列,"-"意义同向量列名或行名取子集df1[,"gene"] #取出列名为...) df1修改行名和列名rownames(df1) r1","r2","r3","r4") #修改所有行名colnames(df1)[2] 为...") #导出数据框为csv的函数,此处soft为变量名,soft.csv应该写全以提示阅读者write.table(soft,file = "soft.csv") #导出数据框为txt的函数#最好不要手动修改与直接保存原始文件

    10.4K00
    领券