R可視化:plot函數(shù)基礎操作,小白教程

最近迷戀上了畫圖,一方面是覺得挺有意思的,另一方面是覺得自己確實畫圖方面比較弱,所以決定比較系統(tǒng)地回顧反思一下,同時順帶記錄下來分享給大家。也確實是好久好久沒更新文章了,真的是雜事太多太忙太牽扯精力沒法更新,好多粉絲的消息也都回不了。

還有一個原因就是畫圖這個東西,可以學一點記一點,然后寫一點,碎片化時間可以完全利用起來,寫統(tǒng)計方法的話,是需要大量整塊的時間去思考的,思路斷了下次相連起來就特別困難,所以如果不是特別閑,有大量整塊的時間,感覺我自己也很難寫的出來了。因為太多是精力被牽扯,稍有閑暇時間就只想躺平在床上,哪有心力寫什么公眾號哦,如今這個氛圍世道下,作為一名青年教師,真的很難有整塊時間進行深度工作。

說到深度工作,這兒將深度工作的理念分享給大家,我挺認可這些話的,不過眼前似乎看不到鼓勵深度工作的氛圍:

卡爾·紐波特先生認為,深度工作是在無干擾的狀態(tài)下專注進行的職業(yè)活動,從而使人的認識能力達到極限。

他認為,深度工作能夠創(chuàng)造新價值,提升技能,而且難以復制。也就是我們常講的心無旁騖和專心致志,是深度工作的精神狀態(tài)。

和深度工作相對應,紐波特也提出浮淺工作的概念,他認為,浮淺工作是對認知要求不高的事務性工作,這類工作往往在受干擾的情況下開展,浮淺工作通常不會創(chuàng)造太多的價值,而且容易復制。

深度工作才能創(chuàng)造更高價值,其成果才難以復制,深度工作才能使人有所見樹和獲得成功。紐波特認為,深度工作的能力日益稀少,而深度工作的價值在社會經濟中日益提升。

因此培養(yǎng)深度工作這項技能,將其內化為工作生活核心的人,將會取得成功,這就是為什么我們要深度工作。在現(xiàn)代社會,無論是經濟生活還是技術進步,都是一個十分復雜的系統(tǒng),不管我們從事什么工作,都需要靜下心來,深度學習,深度思考,深度工作。

當前,我們大力提倡工匠精神,我覺得工匠精神的核心就是深度工作。工匠精神必須是一絲不茍,必須是見微知著,必須是持之以恒,而這些特點正是深度工作所必需的。

我常想,我國古代一些巧奪天工的建筑藝術,那不僅需要精密的計算和設計,還需要精益求精的建造。那個時代雖然科技并不發(fā)達,但工匠們憑著比較單一的知識和經驗,全神貫注地去做,把工作做到了極致。

在當代社會,陳景潤破解歌德巴赫猜想、屠呦呦發(fā)明青蒿素靠深度工作,袁隆平培育新稻種靠的也是深度工作。

我們今天提倡深度工作,對于重拾和筑牢我國的工匠精神至關重要。

所以今天就只能給大家寫一些比較膚淺的,最最最基礎的作圖函數(shù)plot,希望大家不要嫌棄哈。

plot函數(shù)常用參數(shù)介紹

首先plot函數(shù)可以接受一系列的參數(shù),通過參數(shù)的組合修改基本上可以畫出你想要的任何圖形,plot可以接受的常見的參數(shù)如下:

常見的圖形參數(shù)的意思,直接拉一張表給大家:

表中都是一些很簡單的描述,我相信大家一看就懂,這兒要給大家提的是type,tpye參數(shù)可以控制圖的類型,常見的圖的類型一覽如下:

比如你要畫一個點圖,就可以寫type='p',要畫一個線圖就可以寫type='l'等等,其余的type對應的圖的樣子如下圖:

就是你只要設定好了x和y的數(shù)據(jù),你想畫個啥圖,就將type設置為對應的啥就可以。

還要給大家介紹顏色參數(shù)col的表示,col的表示有很多種方法,比如你想要你圖呈紅色,只需要將col參數(shù)設置為col="red"就行,那么當然不止可以設置為紅,R有很多預先設定好的顏色可以供你選擇,你在console中運行colors()就可以看到預設的顏色了,如下:

總共其實有657個顏色,這兒我就只截圖了這么多而已哈。657個顏色如下,可以隨便選:

其實顏色的設定還有很多別的方式,比如可以用顏色的index,顏色names,也可以用RGB,也可以用十六進制表示都行:

顏色介紹完了我們再看las參數(shù),軸標簽的style可以用las參數(shù)修改,什么意思呢,就是我們的軸標簽可以選擇是和軸水平,還是一直水平,或者一直垂直。什么意思呢?大家看這幅圖:

可以看到軸標簽都是和軸平行的(y軸的標簽和y軸平行),這個時候我們將y軸的標簽改為水平才更符合我們的讀圖習慣,這個時候我們就可以將las設置為1,得到如下的圖:

此時大家再注意縱軸的標簽,可以看到也變?yōu)槠叫蟹植剂?,這個就是las參數(shù)的作用。

繼續(xù)看bty參數(shù),這個參數(shù)是用來改畫圖的框框的,就是說默認我們用plot作圖都會帶一個框框,如下:

比如我想要一個無框圖我就可以將bty設置為n,然后就得到效果如下,沒有框框只有軸:

plot函數(shù)中還有個pch參數(shù)是控制點的類型的,取值意義如下,大家也可以換著用用試試:

比如我想要我的點是空心菱形,我就可以設置pch=5,就可以得到下面的圖:

上圖的完整代碼如下:

plot(pressure,pch=21,col='#eb280a',bg="lightblue",las=1,? ? cex=1,type='p',bty='n')

plot作圖時的圖例操作

我們在一個圖中畫多組對象的時候,這個時候就需要圖例來幫助我們讀圖,比如對下面的圖,這個圖中有兩組數(shù)據(jù),但卻沒有圖例,我們不知道三角形和圈圈代表啥:

我想加一個圖例,這個時候就需要繼續(xù)運行l(wèi)egend函數(shù),比如我想圈圈代表‘關注’,三角代表‘Codewar’,我就可以寫出如下代碼,這兒的“關注”和“Codewar”你都可以換成你想的任何字符哈,這兒僅用它舉例

legend(0,800,c("關注","Codewar"), pch=c(19,17), col=c("lightblue","blue"))

圖例當然也可以改,首先就是改位置,位置的關鍵字有9個,對應的位置如下圖:

圖例的位置可以用關鍵字改,也可以更加的個性化,用坐標改也是可以的,其可以接受的參數(shù)如下圖:

比如我想將原來的圖例換成紅色的背景,然后放在(25,800)這個坐標上,我就可以寫出如下代碼:

legend(25,800,? ? ? bg = 'red',c("關注","Codewar"), pch=c(19,17), col=c("lightblue","blue"))

運行后得到下圖:

大家可以看到一個紅色背景的圖例已經在對應位置加上了,但是仔細觀察上圖,其實我們現(xiàn)在圖是沒有邊框的,這個時候圖例加個邊框也不合適,所以我還想設置下圖例的邊框,甚至我還想改圖例中的字體,甚至圖例整體的大小,甚至是....統(tǒng)統(tǒng)都是可以的哈,就是這么牛!

比如,我現(xiàn)在突發(fā)奇想,我想給我的圖例加一個標題,再將其變小一點,放在右下角,并且讓圖例中的字水平排列,我就可以寫出如下代碼:

legend("bottomright", title="歡迎大家",? ? ? c("關注","Codewar"),col=c("lightblue","blue"), horiz=TRUE, cex=0.4,? ? ? box.lty=0,bg='red',? ? ? text.font=4? ? ? )

依然是給大家解釋下上面代碼中各個參數(shù)的意思:bottomright是圖例位置的關鍵字,title是標題字符,horiz是圖例內容水平排列,cex是圖例整體大小,box.lty是圖例邊框(取0就是無框),text.font是字體(取4就是斜體)。大家可以嘗試著改改上面的參數(shù)自己試試呀。

實例操練

比如我給一位同學做了個軌跡模型,這個模型本身是用plot函數(shù)輸出的,默認輸出的圖像如下:

我此時想將這個圖參照已經發(fā)表的一篇文獻,改一改,大概改成下面這個樣子:

我們先觀察一下需要改動的地方,首先就是圖的邊框,之前給大家寫了邊框可以用bty參數(shù)改;然后是橫軸的標簽,這個可以用axis改,并且需要將標簽改為始終水平放置(使用las參數(shù));然后就是圖例了,圖例需要放在整幅圖的下面,可以用legend函數(shù)改。

我們就來實操一下:運行下面代碼

plot(plotpred, lty=1, lwd=5, shades=T,? ? xlab="Time",? ? ylab="PTG",? ? ? bty='l',? ? las=1,? ? cex=0.75,legend = NULL)axis(side=1, at=c(0,0.5,1,1.5,2), labels = c('2001','2002','2003','2004','2005'))legend("bottom",? ? ? legend = c('Low','Moderate','High'),? ? ? col = c(2,1,3),? ? ? ? lty=1, lwd=5,? ? ? horiz = T,? ? ? seg.len=6,? ? ? bty='n',? ? ? xpd = T,inset=-0.25)

運行上面的代碼即可得到下圖,效果基本上和發(fā)表的文獻已經一致了,放在論文中肯定也是沒問題的:

上面的代碼中axis是對圖形坐標軸進行重新設置,side參數(shù)的可以取4個值,side=1的意思是below,就是下面這個軸,對下面這個軸進行操作,at參數(shù)可以設置軸標簽的位置,此時寫了5個位置,相應地labels就是軸標簽,即在at的5個位置上標簽分別為2001-2005年。還有l(wèi)egend函數(shù)中,需要提示一下的就是xpd參數(shù),這個參數(shù)為TRUE就表示允許在原圖外進行繪制,此時就表示我在原圖外,也就是原圖的下方添加圖例。

以上實例就是這樣。

小結

今天給大家寫了一些基礎包中plot作圖設置的基礎知識點,感謝大家耐心看完,自己的文章都寫的很細,重要代碼都在原文中,希望大家都可以自己做一做,請轉發(fā)本文到朋友圈后私信回復“數(shù)據(jù)鏈接”獲取所有數(shù)據(jù)和本人收集的學習資料。如果對您有用請先記得收藏,再點贊分享。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容