小白学习1-r语言与网站分析 颜色以及文字/点/线参数的设置


colors()
plot(c(1:10),type='b',col='black')
text(6,5,labels = '文字',col = 'red')
points(2,5,col='blue')

输入657中颜色名称及其对应的颜色,并保存在一个pdf文件中


pdf('f:/color_bar.pdf',height = 120)
par(mar = c(0,10,3,0)+0.1,yaxs='i')
barplot(rep(1,length(colors())),col = rev(colors()),
names.arg =rev(colors()),horiz=T,las = 1,
xaxt = 'n',main = expression('bars of colors in' ~
italic(colors())))
dev.off()

rgb取色


hex <- rgb(red=126,green=255,blue=211,max=255);
text(6,5,labels = '文字',col = hex)

rainbow


barplot(rep(1:41),
col=c(rainbow(n=6,start = 0,end = 1/6),
'white',
rainbow(n=6,start = 1/6,end = 2/6),
'white',
rainbow(n=6,start = 2/6,end = 3/6),
'white',
rainbow(n=6,start = 3/6,end = 4/6),
'white',
rainbow(n=6,start = 4/6,end = 5/6),
'white',
rainbow(n=6,start = 5/6,end = 1)))
x.text <- c('赤色','黄色','绿色','青色','蓝色','紫色')
axis(side = 1,at =seq(from = 3,length.out = 6,by = 8.5),
labels = x.text,cex = 0.75)

颜色由红变黄变白


barplot(rep(1:6),col=heat.colors(6))

绿变黄变棕


barplot(rep(1:6),col=terrain.colors(6))

蓝变青变棕


barplot(rep(1:6),col=topo.colors(6))

青变白变紫


barplot(rep(1:6),col=cm.colors(6))

颜色扩展

  • 用户只用指定配色方案名称,就可以用包中的brewer.pal()生成颜色
  • sequential:生成一系列连续渐变的颜色,通常用来标记连续性数值
  • diverging:生成用深色签掉两端,浅色标示中部的系列颜色,可用来标记数据中的离群点
  • qualitative: 生成一系列彼此差异比较明显的颜色,通常用来标记分类数据

调用函数brewer.pal()


library(RColorBrewer)

- seq连续型

display.brewer.all(type = 'seq')
barplot(rep(1:6),col=brewer.pal(9,'YlOrRd')[3:8])

- div系列

display.brewer.all(type='div')
barplot(rep(1:6),col=brewer.pal(11,'BrBG')[3:8])

- qual

display.brewer.all(type='qual')
barplot(rep(1:6),col=brewer.pal(11,'Set3')[2:7])

- 设置bg的原理与col原理一样

文字元素相关参数设置

1、字体font
plot(c(0:5),col='white')
text(2,4,labels='font1:正常',font = 1)
text(3,3,labels='font2:粗体',font = 2)
text(4,2,labels='font3:斜体',font = 3)
text(5,1,labels='font4:粗斜体',font = 4)

2、大小
cex参数0.5,0.8,1,1.2,1.5,大于1表示扩大,小于1缩小

点元素相关参数设置

参数pch、col、cex


plot(1,col="white",xlim=c(1,9),ylim = c(1,7))
for(i in c(0:25)){
x <- (i%/%5)*1+1
y <- 6-(i%%5)
if(length(which(c(21:25)==i))>=1){
points(x,y,pch=i,bg="red",cex=2)
}else{
points(x,y,pch=i,cex=2)
}
text(x+0.2,y+0.2,labels = paste("pch=",i))
}
points(6,5,pch="*",cex=2);text(6.2,5.2,labels = paste("pch=\"*\""))

线元素相关参数设置

线条样式lty,颜色col,宽度lwd
- lty
0 “black” 不画线;
1 “solid” 实线;
2 “dashed” 虚线;
3 “dotted” 点线;
4 “dot-dash” 点画线;
5 “longdash” 长画线;
6 ”twodash“ 点长画线。


data <- matrix(rep(rep(1:7),10),ncol=10,nrow = 7)
plot(data[1,],type="l",lty=0,ylim = c(1,8),xlim = c(-1,10),axes = F)
text(0,1,labels="lty=0")
for (i in c(2:7)){
lines(data[i,],lty=i-1)
text(0,i,labels = paste("lty=",i))
}

低级绘图


data <- data.frame(pre=c(113,134,123,145,137,196,187),
now=c(129,122,134,149,146,215,208))
ylim_max <- 550
col <- c("azure4","brown4")
barplot(as.matrix(rbind(data$pre,data$now)),beside = T,ylim=c(0,ylim_max),col=col,axes=F)
axis(2)

标题:main,sub,xlab,ylab


title(main=list("本周pv趋势图",cex=1.5,col="red",font=3),
sub=paste("范围:2013.4.22-2013.4.28“","\n","网站板块:军事科技"),
ylab="网站日页面浏览量pv")

图例:


text.legend=c("上周pv","本周pv","pv同比增长","pv环比增长")
col2 <- c("black","blue")
legend(1,520,pch=c(15,15,16,16),legend = text.legend,col = c(col,col2),bty="n",ncol=2,cex=0.75)
legend("topleft",pch=c(15,15,16,16),legend = text.legend,col = c(col,col2),bty="n",ncol = 2)
legend(1,500,pch = c(15,15,NA,NA),lty = c(NA,NA,1,1),legend = text.legend,col = c(col,col2),ncol=2,bg="aliceblue")

坐标轴

axis


text.x=c("周一","周二","周三","周四","周五","周六","周天")
axis(1,c(2,5,8,11,14,17,20),labels = text.x,cex.axis=0.75,col.axis="red",col="blue",col.ticks = "green")
axis(2,c(0,100,200,300,400,500))
axis(4,at=seq(from=250,length.out = 7,by=40),labels=c("-60%","-40%","-20%","0","20%","40%","60%"))

- axes=F隐藏x和y轴
- xaxt=“n”隐藏x轴
- xaxs x轴的计算法方式“r”按原始数据扩大4%,“i”表示按原始数据长度
- xlog 坐标轴是否取对数
- xlim x轴的范围

rug画出样本的分布情况


plot(data$pre,data$new,main="转化率-单页浏览量")
rug(data$pre)
rug(data$new,side=2)

边框

bty可以取字符“0”,”l”,”7”,”c”,”u”,”]”,”n”

  • box()函数可以设置各边框的线条样式
  • bty:样式
  • col:颜色
  • lwd:边框线条宽度
  • lty:边框样式

网格线

grid(nx,ny,……),nx表示水平网格数目,ny表示垂直网格数目

x.text <- c(“1月”,”2月”,”3月”,”4月”,”5月”,”6月”,”7月”,”8月”,”9月”,”10月”,”11月”,”12月”)

sales.volumn <- c(158721,190094,108441,88092,68709,50116,90117,160044,186045,106334,89092,104933)
plot(sales.volumn,type="b",main="月销售量趋势图",xlab="月份",ylab="销量(元)")
grid(nx=NA,ny=8,lwd=1,lty=2,col="blue")

points(x,y,type,pch,col,bg,lwd,cex)

type
- p 画点
- l 画线
- b 同时画出点,线
- c 去除b中的点
- o 同时画出点,线,区别与b
- h 画出铅垂线
- s 阶梯线
- S 阶梯线
- n 表示空图

x <- 2:9;y <- 2:9
par(mfrow=c(3,3))
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"p\"默认");points(x,y)
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"l\"");points(x,y,type="l")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"b\"");points(x,y,type="b")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"c\"");points(x,y,type="c")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"o\"");points(x,y,type="o")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"h\"");points(x,y,type="h")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"s\"");points(x,y,type="s")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"S\"");points(x,y,type="S")
plot(1,ylim=c(1,10),xlim=c(1,10),col="white",main="type=\"n\"");points(x,y,type="n")
dev.off()

线

abline


pv <- c(532251,574540,537528,593018,759865,843321,785337,637756,627096,618487,644126,535169,677159,635077)
uv <- c(223065,216166,217605,226722,258608,319029,296505,239219,237991,247237,260646,233432,280163,269671)
sol.lm <- lm(pv~uv)
plot(pv~uv,xlab="独立用户数",ylab="页面浏览量")
abline(sol.lm)

segment(x0,y0,x1,y1)

arrows()函数绘制箭头


plot(1,xlim=c(0,10),ylim=c(0,8),col="white")
arrows(1,1,8,1,angle = 90);text(9,1,"angle=90")
arrows(1,1,8,3,angle = 60);text(9,3,"angle=60")
arrows(1,1,8,5,angle = 30);text(9,5,"angle=30")
arrows(1,1,8,7,angle = 0);text(9,7,"angle=0")

lines


same.pre.growth <- (data$now-data$pre)/data$pre
ring.growth <- c(NA,diff(data$now)/data$now[1:length(data$now)-1])
a <- 200;b <- 370
lines(c(2,5,8,11,14,17,20),a*same.pre.growth+b,type = "b",lwd=2)
lines(c(2,5,8,11,14,17,20),a*ring.growth+b,type = "b",lwd=2,col="blue")

文字

text(x,y,labels,cex,col,font)


j <- 1
for (i in 1:length(data[,1])){
text(3*i-1,a*same.pre.growth[i]+b-8,paste(round(same.pre.growth[i]*10000)/100,"%",seq=""))
j <- j+1
text(3*i-1,a*ring.growth[i]+b+8,paste(round(ring.growth[i]*10000)/100,"%",seq=""),col="blue")
j <- j+2
}

柱状图上添加标签


j <- 1
for (i in 1:length(data[,1])){
text(j+0.5,data$pre[i]+10,data$pre[i],col = "deepskyblue4");j <- j+1
text(j+0.5,data$now[i]+10,data$now[i],col = "deepskyblue4");j <- j+2
}

多边形


par(mfrow=c(2,1))
plot(0,xlim = c(0,10),ylim = c(0,10),col="white")
polygon(x=c(1,1,9,9),y=c(9,1,1,9),col="orange",border="orange")
plot(0,xlim=c(0,10),ylim=c(0,10),col="white")
polygon(x=c(1,1,9,9),y=c(9,1,9,1),col="orange",border = "orange")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值