中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
R語(yǔ)言繪圖、高清保存、以及顏色系統(tǒng)

轉(zhuǎn)載于R語(yǔ)言中文論壇R語(yǔ)言中文社區(qū)

由于R語(yǔ)言基礎(chǔ)作圖部分內(nèi)容簡(jiǎn)單直接,但參數(shù)繁多,因此這里不做系統(tǒng)介紹,只挑出幾個(gè)點(diǎn)來(lái)講一講。主要介紹R中的顏色系統(tǒng)。


目錄

  1. 一個(gè)作圖示例

  2. 圖片的高清保存

  3. par函數(shù)使用技巧

  4. 顏色系統(tǒng)

  5. 作圖使用中文亂碼

  6. 基礎(chǔ)作圖和數(shù)學(xué)公式的演示


一個(gè)作圖示例


下面我們要畫(huà)出以上圖片,當(dāng)做一些函數(shù)和參數(shù)使用的例子,代碼中的注釋會(huì)對(duì)一些內(nèi)容作出解釋。

x <- 1:5y <- 5:1# 生成25個(gè)點(diǎn)的網(wǎng)格數(shù)據(jù)xy <- expand.grid(y=y,x=x)# 畫(huà)25種pchplot(xy$x-6,xy$y,pch=1:25,col="red",cex=2,     xlim=c(-5.5,6),ylim=c(-7,6), # 指定坐標(biāo)軸范圍     ann=F,axes=F) # 這兩個(gè)參數(shù)去掉原有邊框text(3-6,12,"points pch=")text(xy$x+0.4-6,xy$y,as.character(1:25))# 畫(huà)6種ltyfor(i in 1:6){  lines(1:5-6,rep(i*5/6,5)-7,lty=i,col="red",lwd=2)}text(3-6,6-7,"lines lty=")text(rep(5.35,6)-6,1:6*5/6-7,as.character(1:6))# 畫(huà)8種typea <- 1:3b <- -(1:3/4)typen <- c("h","p","l","b","o","S","s","n") # n指不畫(huà)線for(i in 1:length(typen)){points(a,b-0.8*i,type=typen[i],col=i+1)text(0.5,-0.2-0.8*i,typen[i],col=i+1)}# 畫(huà)通過(guò)原點(diǎn)的坐標(biāo)軸axis(1,c(-5,0,6),pos=0, # 確定軸的坐標(biāo)為0     col.ticks = "transparent",col="grey",col.axis="grey",     hadj=-1,padj=-1.5) # 調(diào)整刻度名與軸之間的距離axis(2,c(-7,0,6),pos=0,     col.ticks = "transparent",col="grey",col.axis="grey",     hadj=1,padj=1.5)# 畫(huà)各種圖形segments(0.5,5,2.5,5,col=2) # 指定首尾坐標(biāo)text(6,5,"segments(1,5,3,5)",adj=1) # adj=1則文字最左端對(duì)應(yīng)前面指定的坐標(biāo)arrows(0.5,4,2.5,4,col=3)text(6,4,"arrows(1,5,3,5)",adj=1)rect(0.5,2.7,2.5,3.3,col="transparent",border=4) # 顏色可以設(shè)為無(wú)色text(6,3,"rect(0.5,2.7,2.5,3.3)",adj=1)polygon(c(0.5,2.5,2.5,0.5),c(1.6,1.6,2.4,2.4), # 自動(dòng)封閉填充顏色        col="grey",border=5) # 畫(huà)多邊形text(6,2,"polygon",adj=1)legend("bottomright",c("segments","arrows","rect","polygon"),       text.col=2:5,lty=1,pch=16,col=2:5,bg="grey",title="legend")

圖片的高清保存

圖片保存分為兩種,一種是plot之后手動(dòng)保存,一種是通過(guò)代碼命令保存。

通過(guò)代碼保存有如下兩個(gè)好處

  1. 如果一次要循環(huán)畫(huà)出多張圖片,同時(shí)保存下來(lái),通過(guò)代碼保存可以實(shí)現(xiàn)自動(dòng)化,大大減少工作量。

  2. 通過(guò)代碼保存還可以指定圖片清晰度。


代碼保存方式

保存圖片的命令分為兩個(gè)系統(tǒng)

  1. png bmp jpeg tiff 函數(shù)是一類

  2. pdf 函數(shù)是一類

這5個(gè)函數(shù)保存完的圖片都以函數(shù)名為后綴名。

函數(shù)的使用格式是這樣的

png("1.png",width=600,height=600) # 指明接下來(lái)要做的圖形的格式和長(zhǎng)寬plot(x,y)dev.off() # 關(guān)閉圖形設(shè)備

這樣做完圖,不會(huì)顯示在R語(yǔ)言窗口中,而是當(dāng)前文件夾中會(huì)出現(xiàn)一個(gè) 1.png 圖片。


清晰度說(shuō)明

pdf函數(shù)保存完是pdf格式,是一張矢量圖,放大縮小不影響清晰度,在使用latex時(shí),可以直接將其作為圖片導(dǎo)入pdf。

而很多時(shí)候?qū)雸D片不能使用pdf格式,只能用png等函數(shù),不過(guò)這些函數(shù)保存出來(lái)的圖片清晰度往往難以令人滿意。

下面我們就來(lái)說(shuō)一說(shuō)如何用png函數(shù)增加保存的圖片的清晰度。


我們要畫(huà)以下這張圖


下面是探索過(guò)程:

  • 注釋1:最開(kāi)始我們嘗試將height和width同比例放大,發(fā)現(xiàn)圖很大文字很小。

  • 注釋2:查看png函數(shù)的文檔,發(fā)現(xiàn)res參數(shù)可以改變像素,我們?cè)黾觬es試一試,發(fā)現(xiàn)文字很大,圖變小了小。而且res不能太大,否則就會(huì)報(bào)錯(cuò)。

  • 目前代碼:我們把height width和res增大同樣比例試一試。發(fā)現(xiàn)圖片正常,而且清晰度提高了

typei <- c("p","l","b","o","c","h","S","s","n")# png("type.png",width=600,height=600) # 原始代碼# png("type.png",width=600*3,height=3*600) # 注釋1# png("type.png",width=600,height=600,res=72*2) # 注釋2png("type.png",width=600*3,height=3*600,res=72*3)# pdf("type.pdf",height=14)  opar <- par(mfrow=c(3,3))for(i in 1:length(typei)){plot(1:10,1:10,type=typei[i],xlab="",ylab="",     main=paste('type="',typei[i],'"'))}dev.off()

par(opar)

par函數(shù)使用技巧

讀者看到上面的這兩條命令可能會(huì)覺(jué)得奇怪

opar <- par(mfrow=c(3,3))par(opar)

本來(lái)只要

par(mfrow=c(3,3))

全局設(shè)置一下就可以了,但是如果這樣的話,以后畫(huà)圖都會(huì)分成9宮格。使用上面那種形式是為了畫(huà)完圖還原之前的參數(shù),不影響后面的作圖。

除了par函數(shù),還有options函數(shù)也是如此

op <- options(digits = 2)(a <- 1.34556) # 1.3options(op)(a <- 1.34556) # 1.34556

顏色系統(tǒng)

一個(gè)展示顏色的程序

為了更方便地展示顏色,我們先定義一個(gè)展示顏色的函數(shù)showcolors,以后我們都會(huì)用這個(gè)函數(shù)來(lái)展示顏色。

# 默認(rèn)輸入顏色不超過(guò)10個(gè),放在一排排列展示,超過(guò)10個(gè)使用方格展示# 如果參數(shù)style="line"則放在一排排列展示,style="grid"則用方格顯示showcolors <- function(colors,style="two"){# 使用函數(shù)閉包funv <- list(# 少量顏色展示,一排展示showcol1 = function(color){l1 <- seq_along(color) # 只要將顏色向量賦值給color,就能用柱狀圖展示image(l1,1,as.matrix(l1),col=color,      ylab="",xlab="",yaxt="n",xaxt="n",bty="n")},# 大量顏色使用方格顯示# 顏色向量的排列順序?yàn)?,從上到下,從左到右排列showcols = function(color){l <- length(color)x <- ceiling(sqrt(l))image(1:x,1:x,matrix(1:(x^2),nrow=x)[,x:1],      col=c(color,rep(ifelse(is.character(color),"white",0),x^2-l)),      ylab="",xlab="",yaxt="n",xaxt="n",bty="n")})l <- length(colors)# 參數(shù)選擇# 使用$或[[]]調(diào)用閉包函數(shù)switch(style,  "line"=funv$showcol1(colors),  "two"=funv[[ifelse(l<=10,"showcol1","showcols")]](colors),  "grid"=funv$showcols(colors))}# 實(shí)例mycolor <- colors()[1:30]showcolors(mycolor)showcolors(mycolor,"line")

R語(yǔ)言顏色系統(tǒng)

  1. 調(diào)用顏色有一下幾種方法

  2. 使用顏色名稱

  3. 指定rgb或者用3位十六進(jìn)制數(shù)、或hsv

  4. 使用系統(tǒng)自帶顏色集

  5. 自己制作漸變色集

  6. 使用顏色包RColorBrewer包

  7. 使用數(shù)字

使用顏色名稱

使用字符串代表顏色,如 “red”,”black”等。這樣R語(yǔ)言自帶的可以使用的字符串共有657個(gè),具體顏色與名稱對(duì)應(yīng)見(jiàn)chart of r colors

# 用如下命令看顏色的演示demo("colors")# colors()代表一個(gè)長(zhǎng)為657的顏色字符串向量length(colors()) # 657colors()[30:35] # "blue4"      "blueviolet" "brown"      "brown1"     "brown2"     "brown3" # 當(dāng)你想得到多種紅色,可以用下面代碼colors()[grep("red",colors())]# 看看有哪些顏色(讀者自試)showcolors(colors()[grep("red",colors())])指定rgb或者用3位十六進(jìn)制數(shù)、或hsv如果系統(tǒng)自帶的顏色不令人滿意,我們可以自己指定顏色的rgb。rgb函數(shù)接的參數(shù)分別對(duì)應(yīng) r-red,g-green,b-blue,生成的顏色是由這三個(gè)顏色組成hsv 是Hue, Saturation, Value色調(diào)、飽和度、亮度。是繪圖的另外一套系統(tǒng)# 默認(rèn)三個(gè)數(shù)在0-1之間color <- rgb(1,0.5,0.25)# 由于我們平常使用的rgb都是0-255,我們可以這樣color <- rgb(35,255,76,maxColorValue=255)# 三個(gè)參數(shù)接向量可以做出一個(gè)顏色向量color <-rgb(seq(1,255,len=10),16:25,16:25,maxColorValue=255)showcolors(color)# 用rgb生成的函數(shù)以3個(gè)16進(jìn)制數(shù)的字符串表示# 我們平時(shí)去找顏色的時(shí)候,有時(shí)也能見(jiàn)到這種格式,其實(shí)和rgb是等價(jià)的,不過(guò)用起來(lái)更方便color[1:4] # "#011010" "#1D1111" "#391212" "#551313"# hsvmycolor <- hsv(seq(0,0.5,len=10),1:10/15,1:10/10)showcolors(mycolor)# 也是用十六進(jìn)制表示mycolor[1:4] # "#1A1818" "#332E2C" "#4D473D" "#66664B"# 提取顏色rgb數(shù)值col2rgb("yellow")


使用系統(tǒng)自帶顏色集

R有以下自帶顏色集

  1. rainbow() 彩虹色

  2. heat.colors() 紅色至黃色

  3. terrain.colors() 綠色、棕色至白色

  4. topo.colors() 深藍(lán)色至淺棕色

  5. cm.colors() 淺藍(lán)到白色、淺紫色

  6. gay()和grey() 灰色

前5個(gè)函數(shù)接受單個(gè)數(shù)值作為參數(shù),生成漸變色,數(shù)值越大,相鄰顏色差別越小

最后一個(gè)函數(shù)接受一個(gè)數(shù)值向量,數(shù)值為0-1之間

# 簡(jiǎn)單示例,作圖由讀者自試mycolor <- heat.colors(10)showcolors(mycolor)# fss中每一個(gè)元素作為fun的參數(shù),執(zhí)行fun函數(shù)的命令fun <- function(f){  showcolors(do.call(f,list(30)),"line")  mtext(f,side=3,line=-1)}fss <- c('rainbow','heat.colors','terrain.colors','topo.colors','cm.colors')op <- par(mfrow=c(3,2),mar=rep(0.2,4))lapply(fss,fun)# gray函數(shù)接受參數(shù)的模式和三種不同showcolors(gray(1:30/30),"line")mtext("gray",side=3,line=-1)par(op)# 作圖結(jié)果見(jiàn)下方


自己制作漸變色集

自己制作漸變色可以使用rgb和hsv函數(shù),也可以使用下面一個(gè)函數(shù),指定顏色的漸變

# 下面函數(shù)可以建立從一個(gè)顏色到另一個(gè)顏色的漸變色a <- colorRampPalette(c("red", "purple"))showcolors(a(20),"line")# 可以接受多個(gè)顏色漸變a <- colorRampPalette(c("green","blue","red", "purple"))showcolors(a(40),"line")

使用顏色包RColorBrewer包

這個(gè)包中有三類顏色,個(gè)人認(rèn)為非常好看

  1. seq類,漸變。適用于從低到高排序明顯的數(shù)據(jù),淺色數(shù)字小,深色數(shù)字大

  2. div類,對(duì)對(duì)極值和中間值比較注重的數(shù)據(jù)

  3. qual類,適用于分類

library(RColorBrewer)# 展示所有顏色display.brewer.all(type = "all") # type可以換為"qual","div","seq"# 使用顏色mycolors<-brewer.pal(7,"Set1") # 從這個(gè)色板中選擇7個(gè)顏色display.brewer.pal(n, "RdGy") # 展示這個(gè)調(diào)色板中的顏色brewer.pal.info # 查看有哪些調(diào)色板

使用數(shù)字

數(shù)字來(lái)表示顏色應(yīng)該是我們平時(shí)最常用的方法了,但是最后講,是因?yàn)樗婕暗秸{(diào)色板,我們可以將前面所有顏色放進(jìn)這個(gè)調(diào)色板中,定義自己的數(shù)字對(duì)應(yīng)顏色。所以等所有顏色都講完了才講這里。

數(shù)字對(duì)應(yīng)的顏色在調(diào)色板中,我們可以用 palette 調(diào)出查看,發(fā)現(xiàn)有8種默認(rèn)顏色,對(duì)應(yīng)數(shù)字1-8.

palette() # "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow"  "gray"op <- par(mfrow=c(1,2),mai=rep(0.2,4))showcolors(1:8)showcolors(1:16)par(op)

調(diào)色板的作用是便捷、快速地使用,我們可以對(duì)其進(jìn)行更改,使用我們自己喜歡的顏色。

# 讀者自己嘗試palette(rainbow(10))showcolors(1:10) mycolor <- colors()[1:30]palette(mycolor)showcolors(1:10)# 將調(diào)色板設(shè)回默認(rèn)palette("default")showcolors(1:10)

作圖使用中文亂碼

加載showtext包,詳情看 https://cos.name/2014/01/showtext-interesting-fonts-and-graphs


基礎(chǔ)作圖和數(shù)學(xué)公式的演示

demo(graphics)demo(plotmath)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
R語(yǔ)言:顏色設(shè)置
R語(yǔ)言中的色彩
R語(yǔ)言顏色設(shè)定問(wèn)題
R語(yǔ)言顏色綜合運(yùn)用與色彩方案共享
R語(yǔ)言中的顏色(一)
R語(yǔ)言之heatmap繪制
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服