ggplot2绘图系统——几何对象之线图

  • 曲线:点连线、路径曲线、时间序列曲线、模型拟合曲线......
  • 直线:水平直线、垂直直线、斜线。

1.曲线

对象及其参数。

#路径图
geom_path(mapping = ,
data = ,
stat = 'identity',
position = 'identity',
lineend = 'butt', #线段两端样式,round/square
linejoin = 'round', #线段交叉样式,mitre/bevel
linemitre = 1,
arrow = ,
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE) geom_line(mapping = ,
data = ,
stat = 'identity',
position = 'identity',
na.rm = F,
show.legend = NA,
inherit.aes = T)

示例时间序列曲线。

ggplot(economics,aes(date,unemploy))+
geom_line(color='red')

点连线

需要依靠图层叠加。先画点和先画线有细微的区别,即重叠的部分后一个会覆盖前一个。

df <- data.frame(x=c(1:10),y=sample(10:30,10))
ggplot(df,aes(x,y,))+geom_point(color='blue')+geom_line(color='red')
ggplot(df,aes(x,y,))+geom_line(color='red')+geom_point(color='blue')



线条颜色

dff <- data.frame(x=c(1:10),y=c(1:10))

#连续型线条颜色映射,意义不大
ggplot(dff,aes(x,y,color=x))+
geom_line(linetype=1)+
geom_point(color='blue') #离散型线条颜色映射
ggplot(economics_long,aes(date,value01))+
geom_line(aes(linetype=variable,color=variable))

2.平滑曲线

参数:

geom_smooth(mapping = ,
data = ,
stat = 'smooth',
position = 'identity',
method = 'auto', #曲线生成方法
formula = y~x,
se=TRUE, #是否显示95%可信区间
na.rm = F,
span=, #曲线平滑程度0-1,越小越平滑
show.legend = NA,
inherit.aes = T
)

method备选: lm/glm/gam/loess/rlm。一般样本量少于1000时,默认loess(样条回归);样本量大于1000时,默认gam(广义加性模型)。

formula备选:y~log(x),或多项式回归y~ploy(x,2)

a=ggplot(mpg,aes(displ,hwy))+
geom_point()+geom_smooth(span=0.2) b=ggplot(mpg,aes(displ,hwy))+
geom_point()+geom_smooth(span=0.8) c=ggplot(mpg,aes(displ,hwy))+
geom_point()+geom_smooth(method='lm',color='red')#线性回归 library(gridExtra) #图形组合
gridExtra::grid.arrange(a,b,c,ncol=3)

置信区间

有专门的几何对象geom_ribbon,即色带图。

mydata <- data.frame(time=seq(2000,2016,1),
m_value=rnorm(17,20,5),
sd_value=runif(17,1,3)) ggplot(mydata,aes(time,m_value))+
#均值曲线
geom_line(color='deeppink4',size=1)+
#95%置信区间上限
geom_line(aes(time,m_value+1.96*sd_value),color='black',linetype=2)+
#95%置信区间下限
geom_line(aes(time,m_value-1.96*sd_value),color='black',linetype=2)+
#在两条置信曲线间添加阴影。
geom_ribbon(aes(time,ymin=m_value-1.96*sd_value,ymax=m_value+1.96*sd_value),
fill='light green',alpha=0.3)

3.直线绘制

函数及其主要参数。

#斜线
geom_abline(...,slope, intercept...) #斜率,截距 #水平直线
geom_hline(..., yintercept...) #垂直直线
geom_vline(..., xintercept...)

示例。

ggplot(mpg,aes(displ,hwy))+geom_point()+
geom_hline(yintercept = c(15,25,35),linetype=2,color='red')+
geom_vline(xintercept = c(3,4.5,6),linetype=2,color='red')+
geom_abline(slope = 6,intercept = 5,color='blue')

R语言与医学统计图形-【15】ggplot2几何对象之线图的更多相关文章

  1. R语言与医学统计图形【4】直方图、金字塔图

    R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...

  2. R语言与医学统计图形【5】饼图、条件图

    R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...

  3. R语言与医学统计图形【3】条形图、误差图

    R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...

  4. R语言与医学统计图形-【33】生存曲线、森林图、曼哈顿图

    1.生存曲线 基础包survival+扩展包survminer. survival包内置肺癌数据集lung. library(survival) library(survminer) str(lung ...

  5. R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr

    ggplot2绘图系统--扩展包ggrepel.ggsci.gganimate.ggpubr等 部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载. 1. ggrepel包 ...

  6. R语言与医学统计图形-【12】ggplot2几何对象之条图

    ggplot2绘图系统--几何对象之条图(包括误差条图) 1.条图 格式: geom_bar(mapping = , data = , stat = 'count', #统计变换默认计数 positi ...

  7. R语言与医学统计图形-【18】ggplot2几何对象汇总

    ggplot2绘图系统--几何对象汇总 前面介绍了常见的几种基本的几何对象,并且介绍了scale.stat等其他要素.后续将介绍position.themes.coord和faceting等函数. 这 ...

  8. R语言与医学统计图形-【22】ggplot2统计变换函数

    ggplot2绘图系统--统计变换函数 在几何对象中以参数stat形式出现. 不同的几何对象对应不同的统计变换函数. 以直方图为例,几何对象geom_histogram(..., stat='bin' ...

  9. R语言与医学统计图形-【11】ggplot2几何对象之散点图

    ggplot2绘图系统--几何对象之散点图 以geom开头的函数超过30个.几何对象和标度函数scale密不可分.只有在aes中传入某个变量,scale才能发挥作用. 所谓标度scale,就是图形遥控 ...

随机推荐

  1. Convolutional Neural Network-week1编程题(TensorFlow实现手势数字识别)

    1. TensorFlow model import math import numpy as np import h5py import matplotlib.pyplot as plt impor ...

  2. Ruby on Rails 单元测试

    Ruby on Rails 单元测试 为什么要写测试文件? 软件开发中,一个重要的环节就是编写测试文件,对代码进行单元测试,确保程序各部分功能执行正确.但是,这一环节很容易被我们轻视,认为进行单元测试 ...

  3. Seata整合SpringBoot和Mybatis

    Seata整合SpringBoot和Mybatis 一.背景 二.实现功能 三.每个服务使用到的技术 1.账户服务 2.订单服务 四.服务实现 1.账户服务实现 1.引入jar包 2.项目配置 3.建 ...

  4. elasticsearch地理位置查询

    elasticsearch地理位置查询 一.背景 二.geo数据类型 1.geo_point 2.geo_shape 三.此处对geo_point类型实战 1.背景 2.插入地点数据 1.创建索引 2 ...

  5. 百亿级小文件存储,JuiceFS 在自动驾驶行业的最佳实践

    自动驾驶是最近几年的热门领域,专注于自动驾驶技术的创业公司.新造车企业.传统车厂都在这个领域投入了大量的资源,推动着 L4.L5 级别自动驾驶体验能尽早进入我们的日常生活. 自动驾驶技术实现的核心环节 ...

  6. 算法学习->求解三角形最小路径

    00 问题 00-1 描述 对给定高度为n的一个整数三角形,找出从顶部到底部的最小路径和.每个整数只能向下移动到与之相邻的整数. 找到一个一样的力扣题:120. 三角形最小路径和 - 力扣(LeetC ...

  7. 五(一)、spring 声明式事务注解配置

    一.事务概述: 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用:比如 用户购买图书:购买动作之前需要确认 ①图书的数量是否足够:②用户账号余额是否足够 ...

  8. 『学了就忘』Linux基础命令 — 30、find命令详细说明

    目录 1.find命令的基本信息 2.find命令基本使用 3.按照文件大小搜索 4.按照修改时间搜索 5.按照权限搜索 6.按照所有者和所属组搜索 7.按照文件类型搜索 8.逻辑运算符 (1)-a: ...

  9. SpringBoot热部署(7)

    1.引入热部署依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...

  10. robot_framewok自动化测试--(6)Collections 库

    Collections 库 Collections 库同样为 Robot Framework 标准类库,它所提供的关键字主要用于列表.索引.字典的处理. 在使用之前需要在测试套件(项目)中添加: 1. ...