搜索
查看: 829|回复: 0

[R] R语言实战 第三章 下

[复制链接]

31

主题

36

帖子

1022

积分

金牌会员

Rank: 6Rank: 6

积分
1022
发表于 2018-12-19 10:59:35 | 显示全部楼层 |阅读模式
# 参考线
abline(h = yvalue, v = xvalue) # 添加参考线
# 例-
[AppleScript] 纯文本查看 复制代码
abline(h = c(1, 5, 7))

abline(v = seq(1, 10, 2), lty = 2, lwd = 2, col = 'red')



# 图例
legend(location, title, legend, ...) # 添加图例
# 图例选项
location # 可直接给定图例左上角的x、y坐标,也可执行locator(1), 使用鼠标确定位置,
         # 也可使用bottom、bottomleft、left、topleft、top、topright、right、bottomright、center放置
title # 图例标题的字符串(可选)
legend # 图例标签组成的字符向量

# 可以使用Hmisc包中的minor.tick()函数,添加次要刻度线
# 例-依剂量对比药物A和药物B的响应情况
[AppleScript] 纯文本查看 复制代码
dose <- c(20, 30, 40, 45, 60)

druga <- c(16, 20, 27, 40, 60)

drugb <- c(15, 18, 25, 31, 40)

opar <- par(no.readonly = T)


[AppleScript] 纯文本查看 复制代码
par(lwd = 2, cex = 1.5, font.lab = 2)

plot(dose, druga, type = 'b',

     pch = 15, lty = 1, col = 'red', ylim = c(0, 100),

     main = 'Drug A vs. Drug B', 

     xlab = 'Drug Dosage', ylab = 'Drug Response')

lines(dose, drugb, type = 'b',

      pch = 17, lty = 2, col = 'green')

abline(h = c(30), lwd = 1.5, lty = 2, col = 'gray')


[AppleScript] 纯文本查看 复制代码
library(Hmisc)

minor.tick(nx = 5, ny = 5, tick.ratio = 0.5)# 添加次要刻度线, nx决定两个主要刻度线之间的次要刻度线的等分数



legend('topleft', inset = 0.05, title = 'Drug Type', c('A', 'B'),

       lty = c(1, 2), pch = c(15, 17), col = c('red', 'blue'))

?legend
inset# 图例距离边界的位置

# 文本标注
text(location, 'text to pace', pos, ...) # 想绘图区域内部添加文本
mtext('text to place', side, line = n, ...)# 向图形的四个边界之一添加文本
location # 文本的位置参数
pos # 文本相对于位置参数的方位,1 = 下, 2 = 左, 3 = 上, 4 = 右。
    # 如指定pos,就可以同时指定参数offset = 作为偏移量
side # 指定用来放置文本的边。 1 = 下, 2 = 左, 3 = 上, 4 = 右, adj = 0 将文本向左下对齐,
     # 或使用adj = 1右上对齐
# 例-
[AppleScript] 纯文本查看 复制代码
attach(mtcars)

plot(wt, mpg,

     main = 'mileage vs. car weight',

     xlab = 'weight', ylab = 'mileage',

     pch = 18, col = 'blue')

text(wt, mpg,

     row.names(mtcars),

     cex = .6, pos = 4, col = 'red')

detach(mtcars)



# 图形的组合
par()
layout() # 或容易组合多幅图形为一副总括图形

[AppleScript] 纯文本查看 复制代码
attach(mtcars)

opar <- par(no.readonly = T)

par(mfrow = c(2, 2))

plot(wt, mpg, main = 'scatterplot of wt vs. mpg')

plot(wt, disp, main = 'scatterplot of wt vs. disp')

hist(wt, main = 'histogram of wt')

boxplot(wt, main = 'boxplot of wt')

par(opar)

detach(mtcars)



attach(mtcars)

layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = T))

hist(wt)

hist(mpg)

hist(disp)

detach(mtcars)




# 图形布局的精细控制
[AppleScript] 纯文本查看 复制代码
opar <- par(no.readonly = T)

par(fig = c(0, 0.8, 0, 0.8))

plot(mtcars$wt, mtcars$mpg,

     xlab = 'miles per gallon',

     ylab = 'car weight')

par(fig = c(0,0.8, 0.55, 1), new = T)

boxplot(mtcars$wt, horizontal = T, axes = F)

par(fig = c(0.65, 1, 0, 0.8), new = T)

boxplot(mtcars$mpg, axes = F)

mtext('enhanced scatterplot', side = 3, outer = T, line = -3)# line参数决定文本内移或外移,值增加,越外移

par(opar)




最后的精细布局,其实就是很多很好看的图的极简版本了,基础真的很重要,掌握好基础,一步一步来,就能做出很好的结果 哈哈

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:求助帖:请问哪些R包可以进行显著性差异检验?
下一篇:单细胞测序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-24 22:25 , Processed in 0.031029 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.