专栏首页医学生物信息学R语言基础绘图教程——第2章:散点图

R语言基础绘图教程——第2章:散点图

利用plot()绘制散点图

R语言中plot()函数的基本格式如下:

plot(x,y,...)

plot函数中,x和y分别表示所绘图形的横坐标和纵坐标;函数中的...为附加的参数。

plot函数默认的使用格式如下:

plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...)

主要参数的含义如下:

(1)type为一个字符的字符串,用于给定绘图的类型,可选的值如下:

"p":绘点(默认值);

"l":绘制线;

"b":同时绘制点和线;

"c":仅绘制参数"b"所示的线;

"o":同时绘制点和线,且线穿过点;

"h":绘制出点到横坐标轴的垂直线;

"s":绘制出阶梯图(先横后纵);

"S":绘制出阶梯图(先纵后竖);

"n":作空图。

(2)main参数 字符串,给出图形的标题;

(3)sub参数 字符串,给出图形的子标题;

(4)xlab 和 ylab参数 字符串,用于给出x轴和y轴的标签。

(5)xlim 和 ylim参数 都是二维向量,分别表示x轴和y轴的取值范围。

x <- runif(50,0,2)
y <- runif(50,0,2)
plot(x, y, main="我的第一个散点图", sub="subtitle", 
     xlab="横坐标", ylab="纵坐标", pch=16)
text(0.6,0.6,"(0.6,0.6)")
abline(h=.6,v=.6, col='red')
x <- runif(50,0,2)
y <- runif(50,0,2)

plot(x, y, type="n", xlab="", ylab="", axes=F) 
points(x,y) #添加坐标点
axis(1) #添加横轴
axis(at=seq(0,2,0.5), side=2) #添加纵轴
box() #补齐散点图的边框
title(main="散点图", sub="subtitle", xlab="x轴", ylab="y轴")
abline(h=0.6,v=0.6,col="red")

利用ggplot2绘制散点图

利用ggplot2绘图,请记住下面这个格式,因为这个格式ggplot2绘制其他图形都是这一格式。

ggplot(data, aes(x, y)) + geom_point()

aes中的x,y值分别表示在x,y轴的变量;geom_point表示增加散点图图层。

散点图分组有两种方式,一种利用shape,以点的形状来区分各种;一种用color,以点的颜色来区分.但是得记住,分组的变量必须为因子变量或者字符串。

ggplot(data, aes(x, y, colour)) + geom_point()#设置colour参数以颜色区分
ggplot(data, aes(x, y, shape)) + geom_point()#设置shape参数以形状区分
library(ggplot2)
#read in data
data = read.table("scatter_plot-3.txt", header=T, sep="\t")
ggplot(data[1:10,], aes(x=carat,y=price)) + geom_point()
##draw all the points 
ggplot(data, aes(x=carat,y=price)) + geom_point()
#there are too much points so that some of them are overplotted 
#there are different methods to highlight the overploting points
#当点的密度大时,我们可以改变点的透明度来区分各个点。
# 当然我们可以使用bin的方法来区分,这种方法是把点的形状设定为长方形,密度越大的长方形区域越透明。
ggplot(data, aes(x=carat,y=price)) +
  geom_point(alpha=0.05)
#另一种方法是把点切到不同的箱子里. 
ggplot(data, aes(x=carat,y=price)) + stat_bin2d()
ggplot(data, aes(x=carat,y=price)) +
  stat_bin2d(bins=50) +
  scale_fill_gradient(low="lightblue", high="red" ,limits=c(0,5000))

#show the bins in hexagon using package hexbin
library(hexbin)
ggplot(data, aes(x=carat,y=price)) + stat_binhex() +
  scale_fill_gradient(low="lightblue", high="red", 
                      breaks=c(0, 250, 500, 1000, 2000, 4000, 6000),
                      limits=c(0,6000))

本文分享自微信公众号 - MedBioInfoCloud(MedBioInfoCloud),作者:DoubleHelix

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TCGAbiolinks包下载TCGA数据进行表达差异分析-乳腺癌案例

    TCGAbiolinks -一个用于TCGA数据综合分析的R/BioConductor软件包,能够通过GDC Application Programming I...

    DoubleHelix
  • R语言数据分析与挖掘(第六章):主成分分析(1)——主成分分析概论

    在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一...

    DoubleHelix
  • R语言基础绘图教程——第4章:面积图和饼图

    DoubleHelix
  • H5新增的块级的语义元素

    figure元素表示一段独立的流内容,一般表示文档主体流内容的一个独立单元。使用<figcaption>元素为figure元素组添加标题。

    week
  • OpenAI研究所制定四大研究目标

    OpenAI是一家非营利人工智能研究公司,其使命是构建安全的人工智能,并尽可能广泛推广人工智能。OpenAI正在努力发展人工智能,并乐于与其他机构共享其方案及成...

    人工智能快报
  • 微软云计算-私有云概述

    随着IT规模的发展与增长,后续的IT发展方向可以以私有云的建设为核心进行。通过在池化的IT资源基础上创建抽象层,私有云彻底变革了业务流程与消耗IT服务的方式。这...

    李珣
  • python学习(六)--正则的一些例子

    py3study
  • 指针与数组的区别

    心跳包
  • 智能音箱第一轮混战结束,下一个关键词是“下沉”

    严格意义说来,现在为人们所熟知的智能音箱也是一类“舶来品”,在亚马逊点燃这把火之后不久,国内以京东为首的企业也相继“引进”。

    镁客网
  • 当市场下跌,你该如何面对周遭的恐惧?

    在过去48小时,加密货币市场失去了290亿美元市值,比特币一度跌至6100美元附近,其它主要加密货币的价格也下跌了10-25%不等。

    用户1338893

扫码关注云+社区

领取腾讯云代金券