《R語(yǔ)言實(shí)戰(zhàn)》學(xué)習(xí)筆記及代碼(第三章)

感謝Robert I.Kabacoff 著作本書榔昔,同時(shí)感謝高濤驹闰、肖楠、陳鋼編譯此書撒会。

最近在學(xué)習(xí)《R語(yǔ)言實(shí)戰(zhàn)》嘹朗,特將學(xué)習(xí)過(guò)程記錄下來(lái),供各位朋友參考诵肛,雖說(shuō)是筆記屹培,但是90%是書中內(nèi)容,另外10%是自己偶爾冒出的一點(diǎn)點(diǎn)想法的記錄和一些疑問(wèn)怔檩,希望互相探討褪秀。末尾有本章的代碼清單下載地址,與各位交流薛训,還是提倡按照書中內(nèi)容把代碼一個(gè)個(gè)敲出來(lái)媒吗。

第三章 圖形初階

本章內(nèi)容

圖形的創(chuàng)建與保存

自定義符號(hào)、線條乙埃、顏色和坐標(biāo)軸

標(biāo)注文本和標(biāo)題

控制圖形維度

組合多個(gè)圖形

3.1 使用圖形

在通常的交互式會(huì)話中闸英,你可以通過(guò)逐條輸入語(yǔ)句構(gòu)建圖形,逐漸完善圖形特征介袜,直至得到想要的結(jié)果甫何。

在通過(guò)代碼保存圖形時(shí),將繪圖語(yǔ)句夾在開啟目標(biāo)圖形設(shè)備的語(yǔ)句和關(guān)閉目標(biāo)圖形設(shè)備的語(yǔ)句直接即可遇伞。

通常繪制新圖形時(shí)辙喂,會(huì)覆蓋掉之前的圖形,有三種方法能保證創(chuàng)建多個(gè)圖形并隨時(shí)查看每一個(gè)赃额。

  • 第一種:在創(chuàng)建一個(gè)新圖形之前加派,打開一個(gè)新的圖形窗口:

    dev.new()

    statements to creat graph 1

    dev.new()

    statements to creat graph 2

    etc

每一幅新圖形將出現(xiàn)在最近一次打開的窗口中。

  • 第二種:通過(guò)圖形用戶界面查看多個(gè)圖形跳芳。
      在windows上分為兩步,在打開第一個(gè)圖形窗口以后勾選歷史(History)→記錄(Recording)竹勉,然后使用菜單中的上一個(gè)(Previous)和下一個(gè)(Next)來(lái)逐個(gè)查看已經(jīng)繪制的圖形飞盆。

  • 第三種:使用函數(shù)dev.new()、dev.next()次乓、dev/prev()吓歇、dev.set()和dev.off()同時(shí)打開多個(gè)圖形窗口,并選擇將哪個(gè)輸出發(fā)送到哪個(gè)窗口中票腰,這種方法全平臺(tái)適用城看。

3.2 一個(gè)簡(jiǎn)單的例子

在plot(x,y,type = "b")中,type的類型有9種杏慰。分別繪制不同的圖形测柠。

b

b

c

c

h

h

l

i

o

o

p

p

大S

大S

小s

小s

其中o和b炼鞠、大S和小s需要特別注意一下,仔細(xì)觀察圖形轰胁,注意他們的不同點(diǎn)谒主。

3.3 圖形參數(shù)

第一種方法是使用par()函數(shù),來(lái)指定圖形的多個(gè)特征(字體赃阀、顏色霎肯、坐標(biāo)軸、標(biāo)題)榛斯。這種方法的特點(diǎn)是:除非秀給其中參數(shù)观游,否則將在會(huì)話結(jié)束前一直有效。

par(optionname = value,optionname = name,…)

如果不加參數(shù)地執(zhí)行par()將生成一個(gè)含有當(dāng)前圖形參數(shù)設(shè)置的列表驮俗。添加參數(shù)no.readonly = TRUE可以生成一個(gè)可以修改的當(dāng)前圖形參數(shù)列表备典。

第二種方法是為高級(jí)繪圖函數(shù)直接提供optionname = value的鍵值對(duì)。僅對(duì)當(dāng)前圖形有效意述。代碼:

plot(dose,drugA,type = "b",lty = 2,pch = 17)

并不是所有的高級(jí)繪圖函數(shù)都允許指定全部可能的圖形參數(shù)提佣,需要參考函數(shù)的幫助來(lái)確定哪些參數(shù)可以通過(guò)這種方式設(shè)置。

3.3.1 符號(hào)和線條

  • pch : 指定繪制點(diǎn)時(shí)使用的符號(hào)荤崇。(書中P45)

  • cex : 指定符號(hào)的大小拌屏,cex是一個(gè)數(shù)值,表示繪圖符號(hào)相對(duì)于默認(rèn)大小的縮放倍數(shù)术荤,默認(rèn)大小為1倚喂。1.

  • lty : 指定線條類型。(書中P46)

  • lwd : 指定線條寬度瓣戚。lwd是以默認(rèn)值的相對(duì)大小來(lái)表示的(默認(rèn)值為1)

對(duì)于pch=21~25端圈,還可以指定便捷顏色(col = )和填充色(bg = )

3.3.2 顏色

R色彩的在線圖表

3.3.3 文本屬性

par(font.lab = 3, cex.lab = 2, font.main = 4, cex.main = 2)

為何在文本屬性的設(shè)置中,沒(méi)有僅對(duì)當(dāng)前圖形設(shè)置生效的方法子库?

3.3.4 圖形尺寸與邊界尺寸

  • pin 以英寸表示的圖形尺寸
  • mai 以數(shù)值向量表示的邊界大小舱权,順序?yàn)椤跋隆⒆舐匦帷⑸涎绫丁⒂摇保瑔挝粸橛⒋纭?/li>
  • mar 以數(shù)值向量表示的邊界大小仓技,順序?yàn)椤跋峦冶帷⒆蟆⑸喜蹦怼⒂摇崩疲瑔挝粸橛⒎帧DJ(rèn)值為c(5地沮,4嗜浮,4羡亩,2)+0.1

一英分等于十二分之一英寸。

邊界參數(shù)在線教程

按照代碼清單做一遍的同時(shí)周伦,先自己理解每一句的含義夕春,再看書中的解釋。

3.4 添加文本专挪、自定義坐標(biāo)軸和圖例

有些高級(jí)繪圖函數(shù)允許自行設(shè)定坐標(biāo)軸和文本標(biāo)注選項(xiàng)及志。書中例子為圖形添加了

標(biāo)題 main

副標(biāo)題 sub

坐標(biāo)軸標(biāo)簽 xlab、ylab

坐標(biāo)軸范圍 xlim寨腔、ylim

某些高級(jí)繪圖函數(shù)已經(jīng)包含了默認(rèn)的標(biāo)題和標(biāo)簽速侈。可以通過(guò)plot()語(yǔ)句或單獨(dú)的par()語(yǔ)句中添加ann=FLASE來(lái)移除他們迫卢。

3.4.1 標(biāo)題

使用title()函數(shù)為圖形添加標(biāo)題和坐標(biāo)軸標(biāo)簽倚搬。調(diào)用格式為:
title(main = "main title", sub = "sub-title", xlab = "x-axis label", ylab = "y=axis label")

3.4.2 坐標(biāo)軸

可以使用函數(shù)axis()來(lái)創(chuàng)建中自定義的坐標(biāo)軸,而非使用R中的默認(rèn)坐標(biāo)軸乾蛤。其格式為:
axis(side, at = , labels = , pos = , lty = ,col = , las = , tck = , …)
  
  參數(shù)axes=FALSE將禁用高級(jí)繪圖函數(shù)自動(dòng)生成的坐標(biāo)軸每界。包括坐標(biāo)軸框架線。
  參數(shù)frame.plot=TRUE將恢復(fù)坐標(biāo)軸框架線家卖。
  參數(shù)xaxt="n"和yaxt="n"將分別禁用X軸和Y軸眨层,會(huì)留下框架線,只是去除了刻度上荡。

在代碼清單中趴樱,有一個(gè)round()函數(shù),其主要作用是取兩位小數(shù)酪捡。如round(1.235, digits = 2)返回的值為:1.24叁征。其中digits可省略,直接寫成round(1.235,2)逛薇。

次要刻度線

添加次要刻度線捺疼,需要使用Hmisc包中的mino.tick()函數(shù),在載入Hmisc包之前金刁,需載入lattice帅涂、survival、Formula尤蛮、ggplot2包。
minor.tick(nx = n, ny = n, tick.ratio = n)

nx和ny分別指定了X軸和Y軸每?jī)蓷l主刻度線之間通過(guò)次要刻度線劃分得到的區(qū)間個(gè)數(shù)斯议。tick.ratio表示次要刻度線相對(duì)于主刻度線的大小比例产捞。當(dāng)前的主刻度線長(zhǎng)度可使用par("tck")獲取。

3.4.3 參考線

abline(h = yvalues, v = xvalues)

為圖形添加參考線哼御。也可以指定其他圖形參數(shù)(線條類型坯临,顏色和寬度等等)

注意:在輸入書中兩串代碼時(shí)焊唬,得到的結(jié)果并不是,如圖中所說(shuō)的位置添加了參考線看靠,反而在意料之外的位置赶促,出現(xiàn)了兩條線,這是為什么挟炬?復(fù)習(xí)時(shí)鸥滨,需要重新檢查。

3.4.4 圖例

使用legend()函數(shù)來(lái)添加圖例谤祖。格式如下:

legend(location, title, legend, …)

3.4.5 文本標(biāo)注

text()和mtext()函數(shù)婿滓。text()函數(shù)還可以標(biāo)示圖形中的點(diǎn)。我們只需要制定一系列x粥喜,y坐標(biāo)作為位置參數(shù)凸主,同時(shí)以向量的形式指定要放置的文本。x额湘、y和文本標(biāo)簽向量的長(zhǎng)度應(yīng)當(dāng)相同卿吐。

數(shù)學(xué)標(biāo)注

使用類似于TeX中的寫法為圖形添加數(shù)學(xué)符號(hào)和公式。請(qǐng)參閱help(plotmatch)以獲得更多的細(xì)節(jié)和示例锋华。

3.5 圖形的組合

可以在par()函數(shù)中使用圖形參數(shù)mfrow=c(nrows, ncols)來(lái)創(chuàng)建按行填充的嗡官、行數(shù)為nrows、列數(shù)為ncols的圖形矩陣供置。也可以使用mfcol=c(nrows,ncols)按列填充矩陣谨湘。

代碼清單3-4展示了圖形布局的精細(xì)控制,我們可隨自己的想法調(diào)整想要展示的圖形芥丧。

問(wèn):P61中的第二行代碼紧阔,創(chuàng)建一個(gè)矩陣式什么意思?





第三章學(xué)習(xí)筆記及代碼清單

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末续担,一起剝皮案震驚了整個(gè)濱河市擅耽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌物遇,老刑警劉巖乖仇,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異询兴,居然都是意外死亡乃沙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門诗舰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)警儒,“玉大人,你說(shuō)我怎么就攤上這事∈癫” “怎么了边琉?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)记劝。 經(jīng)常有香客問(wèn)我变姨,道長(zhǎng),這世上最難降的妖魔是什么厌丑? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任定欧,我火速辦了婚禮,結(jié)果婚禮上蹄衷,老公的妹妹穿的比我還像新娘忧额。我一直安慰自己,他們只是感情好愧口,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布睦番。 她就那樣靜靜地躺著,像睡著了一般耍属。 火紅的嫁衣襯著肌膚如雪托嚣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天厚骗,我揣著相機(jī)與錄音示启,去河邊找鬼。 笑死领舰,一個(gè)胖子當(dāng)著我的面吹牛夫嗓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冲秽,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼舍咖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锉桑?” 一聲冷哼從身側(cè)響起排霉,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎民轴,沒(méi)想到半個(gè)月后攻柠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡后裸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年瑰钮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片微驶。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飞涂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祈搜,到底是詐尸還是另有隱情较店,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布容燕,位于F島的核電站梁呈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蘸秘。R本人自食惡果不足惜官卡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望醋虏。 院中可真熱鬧寻咒,春花似錦、人聲如沸颈嚼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阻课。三九已至叫挟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間限煞,已是汗流浹背抹恳。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留署驻,地道東北人奋献。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旺上,于是被迫代替她去往敵國(guó)和親瓶蚂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容