R-plot
颜色、图例和线
在散点图中添加信息、图例以及回归线。
模拟数据
#模拟数据
dat <- data.frame(X = runif(100,-2,2),T1 = gl(n=4,k=25,labels = c("Small","Medium","Large","Big")),Site = rep(c("Site1","Site2"),time = 50))
mm <- model.matrix(~Site+X*T1,dat)
betas <- runif(9,-2,2)
dat$Y <- rnorm(100,mm%*%betas,1)
summary(dat)
添加颜色
给plot的col参数传递一个颜色向量
#选择需要使用的颜色
library(RColorBrewer)
#RColorBrewer中的所有调色板
display.brewer.all()
#选取Set1调色板中的四种颜色
cols <- brewer.pal(n=4,name="Set1")
#cols表示的是四种不同颜色的名称
#创建一个跟T1变量的因子水平相对应的颜色向量
cols_t1 <- cols[dat$T1] plot(Y~X,dat,col=cols_t1,pch=16)
更改图形符号
创建图形符号向量,用来标记两种不同的Site
pch_site <- c(16,18)[factor(dat$Site)]
#pch参数用来控制图形符号
plot(Y~X,dat,col=cols_t1,pch=pch_site)
添加图例
legend函数的第一个参数指定图例显示在图形中位置,接着是图例文本。通过设置xpd=TRUE可以在图形外增加图例。并指定x,y坐标轴
plot(Y~X,dat,col=cols_t1,pch=pch_site)
legend("topright",legend = paste(rep(c("Small","Medium","Large","Big"),times=2),rep(c("Site 1","Site 2"),each=4),sep = ", "),col = rep(cols,times=2),pch = rep(c(16,18),each=4),bty = "n",ncol = 2,cex = 0.7,pt.cex = 0.7,xpd = TRUE)
添加回归线
new_X<-expand.grid(X=seq(-2,2,length=10),T1=c("Small","Medium","Large","Big"),Site=c("Site1","Site2"))
m<-lm(Y~Site+X*T1,dat)
pred<-predict(m,new_X)
xs<-seq(-2,2,length=10)
plot(Y~X,dat,col=cols_t1,pch=pch_site)
lines(xs,pred[1:10],col=cols[1],lty=1,lwd=3)
...
lines(xs,pred[31:40],col=cols[4],lty=1,lwd=3)
lines(xs,pred[41:50],col=cols[1],lty=2,lwd=3)
...
lines(xs,pred[71:80],col=cols[4],lty=2,lwd=3)
legend(x=-1,y=13,legend=paste(rep(c("Small","Medium","Large","Big"),times=2),rep(c("Site 1","Site 2"),each=4),sep=", "),col=rep(cols,times=2),pch=rep(c(16,18),each=4),lwd=1,lty=rep(c(1,2),each=4),bty="n",ncol=2,cex=0.7,pt.cex=0.7,xpd=TRUE)
坐标轴
坐标轴标题和标签
新建绘图数据并得到默认设置的图形:
#新建数据
x<-1:100
y<-runif(100,-2,2)
#得到的默认设置的图形
plot(x,y)
#修改坐标轴标题
plot(x,y,xlab="Index",ylab="Uniform draws")
图形设置通过par函数来实现
#修改轴标签和轴标题的尺寸
op<-par(no.readonly=TRUE) #保存默认设置
par(cex.lab=1.5,cex.axis=1.3)
plot(x,y,xlab="Index",ylab="Uniform draws")
#为了得到大尺寸的轴标题和标签,需要预留更大的空间
par(mar=c(6,6,3,3),cex.axis=1.5,cex.lab=2)
plot(x,y,xlab="Index",ylab="Uniform draws")
通过axis函数可以对坐标轴做更多设置。他可以用来控制在哪些坐标值处绘制刻度线,刻度线下放置轴标签,轴线的类型和宽度,刻度线宽度,轴线和刻度线的颜色:
#利用axis函数对坐标轴作进一步的设置
par(op) #重置为默认设置
plot(x,y,xaxt="n") #不绘制x轴标签
axis(side=1,at=c(5,50,100)) #在x轴的5,50,150处绘制刻度线
#在刻度线处指定标签
plot(x,y,yaxt="n")
axis(side=2,at=c(-2,0,2),labels=c("Small","Medium","Big"))
#设置坐标轴线和标签
plot(x,y)
axis(side=3,at=c(5,25,75),lwd=4,lwd.ticks=2,col.ticks="red")
#移除图形四周的边框,只显示坐标轴线
plot(x,y,bty="n",xaxt="n",yaxt="n")
axis(side=1,at=seq(0,100,20),lwd=3)
axis(side=2,at=seq(-2,2,2),lwd=3)
R图形有四个面,底部是起始位置,并按顺时针方向计数(即side=3是在顶部)
刻度线
精细化的控制刻度线,它可以通过par函数或axis函数来实现。
R-plot的更多相关文章
- R: plot 绘图各种参数,以及 legend。。
################################################### 问题:基础绘图plot 18.4.30 plot函数,基础绘图的各个参数? 解决方案: ca ...
- R语言编程艺术(5)R语言编程进阶
本文对应<R语言编程艺术> 第14章:性能提升:速度和内存: 第15章:R与其他语言的接口: 第16章:R语言并行计算 ================================== ...
- Python调用R编程——rpy2
在Python调用R,最常见的方式是使用rpy2模块. 简介 模块 The package is made of several sub-packages or modules: rpy2.rinte ...
- R 语言实战-Part 5-2笔记
R 语言实战(第二版) part 5-2 技能拓展 ----------第21章创建包-------------------------- #包是一套函数.文档和数据的合集,以一种标准的格式保存 #1 ...
- Python socket编程之八:阶段性总结
f1.py # -*- coding: utf-8 -*- import sqlalchemy import tushare import pandas import socket import st ...
- IRIS数据集的分析-数据挖掘和python入门-零门槛
所有内容都在python源码和注释里,可运行! ########################### #说明: # 撰写本文的原因是,笔者在研究博文“http://python.jobbole.co ...
- matlab工具箱之人眼检测+meanshift跟踪算法--人眼跟踪
Viola-Jones 人眼检测算法+meanshift跟踪算法 这次的代码是对视频中的人眼部分进行检测加跟踪,检测用的是matlab自带的人眼检测工具箱 下面是matlab官网介绍这个算法的一些东西 ...
- Markdown入门基础
// Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...
- Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)
,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...
- Python 实现粒子滤波
#转# -*- coding=utf-8 -*-# 直接运行代码可以看到跟踪效果# 红色的小点代表粒子位置# 蓝色的大点表示跟踪的结果# 白色的方框表示要跟踪的目标# 看懂下面两个函数即可from n ...
随机推荐
- Unity 使用实体类
故事的由来: 正在开发打飞机的游戏,遇到这样的数据结构,游戏有很多关卡-> 每个关卡有几波怪物->每一波里面有怪物和数量 [] 关卡 { []波{ {怪物,数量},{怪物,数量},{怪物, ...
- UP UP UP!(dp)
UP UP UP! Time Limit: 1 Sec Memory Limit: 128 MB Submit: 92 Solved: 27SubmitStatusWeb Board Descri ...
- MFC学习之程序执行过程梳理
*首先利用全局变量对象theApp启动应用程序.这是由于这个全局对象,基类CWinApp中this的指针才干指向这个对象.假设没有这个全局对象,程序在编译时不会出错,但在执行时就会出错. *调用全局应 ...
- 【二分查找+优化O(n)】【续UVA1121】Subsequence
之前的二分答案做法 http://blog.csdn.net/zy691357966/article/details/40212215 二分查找做法: 我们首先试试只枚举终点.对于终点j,我们的目标是 ...
- .Net+MySQL
网上很少用.Net+MySQL的组合的,所以资料比较少,发现一个赶紧分享给大家. 通常数据库连接字符串为:Database=dbname;Data Source=192.168.1.1;Port=33 ...
- 通过匹配绑定select option的文本值 模糊匹配
//通过匹配绑定select option的文本值 模糊匹配 $(".class option:contains('文本值')").attr("selected" ...
- python 使用 tweepy 案例: PS4
First, make sure Python and Tweepy installed well, and the network setup well. Then, you go to http: ...
- JS 不定函数参数argument的用法
本篇文章只要是对js的隐含参数(arguments,callee,caller)使用方法进行了介绍. arguments arguments 该对象代表正在执行的函数和调用它的函数的参数. [func ...
- Oracle 10G 使用UTL_SMTP发送中文电子邮件[Z]
CREATE OR REPLACE PROCEDURE SCOTT.HTML_EMAIL( P_TO IN VARCHAR2, --收件人地址 P_SUBJECT IN VARCHAR2, --邮件主 ...
- C#操作AD的例子
一下连接中包含了使用c#对AD操作的各种列子 http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-D ...