自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

R 語(yǔ)言繪制數(shù)據(jù):圖表篇

開(kāi)發(fā) 后端
這是 R 語(yǔ)言系列的第 9 篇文章,我們會(huì)介紹 R 中用來(lái)繪圖的各種函數(shù)。

R 語(yǔ)言有非常多的繪圖和數(shù)據(jù)可視化的包,比如 ??graphics???、??lattice???、??ggplot2?? 等。這是 R 語(yǔ)言系列的第 9 篇文章,我們會(huì)介紹 R 中用來(lái)繪圖的各種函數(shù)。

本文使用的 R 是 4.1.2 版本,運(yùn)行環(huán)境為 Parabola GNU/Linux-libre (x86-64)。

R 是自由軟件,沒(méi)有任何擔(dān)保責(zé)任。只要遵守 GNU 通用公共許可證的版本 2 或者版本 3,你就可以對(duì)它進(jìn)行(修改和)再分發(fā)。詳情見(jiàn) ??https://www.gnu.org/licenses/??。

折線圖

我們以印度全境消費(fèi)者物價(jià)指數(shù)(CPI -- 鄉(xiāng)村/城市)數(shù)據(jù)集為研究對(duì)象,它可以從 ??https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0??? 下載。選擇“截止到 2021 年 11 月” 的版本,用 ??read.csv?? 函數(shù)讀取下載好的文件,如下所示:

以 Punjab 州為例,對(duì)每年各月份的 CPI 值求和,然后用 ??plot?? 函數(shù)畫一張折線圖:

??plot?? 函數(shù)可以傳入如下參數(shù):

參數(shù)

描述

??x??

向量類型,用于繪制 x 軸的數(shù)據(jù)

??y??

向量或列表類型,用于繪制 y 軸的數(shù)據(jù)

??type??

設(shè)置繪圖類型:??p??? 畫點(diǎn);??l??? 畫線;??o??? 同時(shí)畫點(diǎn)和線,且相互重疊;??s??? 畫階梯線;??h?? 畫鉛垂線

??xlim??

x 軸范圍

??ylim??

y 軸范圍

??main??

標(biāo)題

??sub??

副標(biāo)題

??xlab??

x 軸標(biāo)題

??ylab??

y 軸標(biāo)題

??axes??

邏輯型,是否繪制坐標(biāo)軸

結(jié)果如圖 1。

Figure 1: Line chart

Figure 1: Line chart

自相關(guān)圖

自相關(guān)圖能在時(shí)序分析中展示一個(gè)變量是否具有自相關(guān)性,可以用 R 中的 ??acf??? 函數(shù)繪制。??acf??? 函數(shù)可以設(shè)置三種自相關(guān)類型:??correlation???、??covariance??? 或 ??partial??。圖 2 是 Punjab 州 CPI 值的自相關(guān)圖,x 表示 CPI。

Figure 2: ACF chart

Figure 2: ACF chart

??acf?? 函數(shù)可以傳入以下參數(shù):

參數(shù)

描述

??x??

一個(gè)單變量或多變量的時(shí)序?qū)ο?,或者一個(gè)數(shù)值向量或數(shù)值矩陣

??lag.max??

最大滯后階數(shù)

??type??

字符型,設(shè)置所計(jì)算的自相關(guān)類型:??correlation???、??covariance??? 或 ??partial??

??plot??

邏輯性,若 ??TRUE??? 則繪制圖像,若 ??FALSE?? 則打印傳入數(shù)據(jù)的描述信息

??i??

一組要保留的時(shí)差滯后

??j??

一組要保留的名稱或數(shù)字

柱狀圖

R 中畫柱狀圖的函數(shù)是 ??barplot??。下面的代碼用來(lái)畫 Punjab 州 CPI 的柱狀圖,如圖3:

Figure 3: Line chart of Punjab's CPI

Figure 3: Line chart of Punjab's CPI

??barplot?? 函數(shù)的使用方法非常靈活,可以傳入以下參數(shù):

參數(shù)

描述

??height??

數(shù)值向量或數(shù)值矩陣,包含用于繪圖的數(shù)據(jù)

??width??

數(shù)值向量,用于設(shè)置柱寬

??space??

柱間距

??beside??

邏輯型,若 ??FALSE??? 則繪制堆積柱狀圖,若 ??TRUE?? 則繪制并列柱狀圖

??density??

數(shù)值型,設(shè)置陰影線的填充密度(條數(shù)/英寸),默認(rèn)為 ??NULL??,即不填充陰影線

??angle??

數(shù)值型,填充線條的角度,默認(rèn)為 45

??border??

柱形邊緣的顏色

??main??

標(biāo)題

??sub??

副標(biāo)題

??xlab??

x 軸標(biāo)題

??ylab??

y 軸標(biāo)題

??xlim??

x 軸范圍

??ylim??

y 軸范圍

??axes??

邏輯型,是否繪制坐標(biāo)軸

用 ??help??? 命令可以查看 ??barplot?? 函數(shù)的詳細(xì)信息:

餅圖

繪制餅圖時(shí)要多加注意,因?yàn)轱瀳D不一定能展示出各扇形間的區(qū)別。(LCTT 譯注:根據(jù)統(tǒng)計(jì)學(xué)家和一些心理學(xué)家的調(diào)查結(jié)果,這種以比例展示數(shù)據(jù)的統(tǒng)計(jì)圖形 ??實(shí)際上是很糟糕的可視化方式???,因此,R 關(guān)于餅圖的幫助文件中清楚地說(shuō)明了并不推薦使用餅圖,而是使用條形圖或點(diǎn)圖作為替代。) 用 ??subset?? 函數(shù)獲得 Gujarat 州在 2021 年 1 月 Rural、Urban、Rurual+Urban 的 CPI 值:

使用 ??pie?? 函數(shù)為 Gujarat 州的 CPI 值生成餅圖,如下所示:

Figure 4: Pie chart

Figure 4: Pie chart

??pie?? 函數(shù)可以傳入以下參數(shù):

參數(shù)

描述

`x

元素大于 0 的數(shù)值向量

??label??

字符向量,用于設(shè)置每個(gè)扇形的標(biāo)簽

??radius??

餅圖的半徑

??clockwise??

邏輯型,若 ??TRUE??? 則順時(shí)針繪圖,若 ??FALSE?? 則逆時(shí)針繪圖

??density??

數(shù)值型,設(shè)置陰影線的填充密度(條數(shù)/英寸),默認(rèn)為 ??NULL??,即不填充陰影線

??angle??

數(shù)值型,填充線條的角度,默認(rèn)為 45

??col??

數(shù)值向量,用于設(shè)置顏色

??lty??

每個(gè)扇形的線條類型

??main??

標(biāo)題

箱線圖

(LCTT 譯注:箱線圖主要是 ??從四分位數(shù)的角度出發(fā)?? 描述數(shù)據(jù)的分布,它通過(guò)最大值(Q4)、上四分位數(shù)(Q3)、中位數(shù)(Q2)、下四分位數(shù)(Q1)

和最小值(Q0)五處位置來(lái)獲取一維數(shù)據(jù)的分布概況。我們知道,這五處位置之間依次包含了四段數(shù)據(jù),每段中數(shù)據(jù)量均為總數(shù)據(jù)量的

1/4。通過(guò)每一段數(shù)據(jù)占據(jù)的長(zhǎng)度,我們可以大致推斷出數(shù)據(jù)的集中或離散趨勢(shì)。長(zhǎng)度越短,說(shuō)明數(shù)據(jù)在該區(qū)間上越密集,反之則稀疏。)

箱線圖能夠用“須線whisker” 展示一個(gè)變量的四分位距Interquartile Range(簡(jiǎn)稱 IQR=Q3-Q1)。用上下四分位數(shù)分別加/減內(nèi)四分位距,再乘以一個(gè)人為設(shè)定的倍數(shù) ??range???(見(jiàn)下面的參數(shù)列表),得到 ??range * c(Q1-IQR, Q3+IQR)??,超過(guò)這個(gè)范圍的數(shù)據(jù)點(diǎn)就被視作離群點(diǎn),在圖中直接以點(diǎn)的形式表示出來(lái)。

??boxplot?? 函數(shù)可以傳入以下參數(shù):

參數(shù)

描述

??data??

數(shù)據(jù)框或列表,用于參數(shù)類型為公式的情況

??x??

數(shù)值向量或者列表,若為列表則對(duì)列表中每一個(gè)子對(duì)象依次作出箱線圖

??width??

設(shè)置箱子的寬度

??outline??

邏輯型,設(shè)置是否繪制離群點(diǎn)

??names??

設(shè)置每個(gè)箱子的標(biāo)簽

??border??

設(shè)置每個(gè)箱子的邊緣的顏色

??range??

延伸倍數(shù),設(shè)置箱線圖末端(須)延伸到什么位置

??plot??

邏輯型,設(shè)置是否生成圖像,若 TRUE 則生成圖像,若 FALSE 則打印傳入數(shù)據(jù)的描述信息

??horizontal??

邏輯型,設(shè)置箱線圖是否水平放置

用 ??boxplot?? 函數(shù)繪制部分州的箱線圖:

Figure 5: Box plot

Figure 5: Box plot

QQ 圖

QQ 圖Quantile-Quantile plot可以用來(lái)對(duì)比兩個(gè)數(shù)據(jù)集,也可以用來(lái)檢查數(shù)據(jù)是否服從某種理論分布。??qqnorm?? 函數(shù)能繪制正態(tài)分布 QQ 圖,可以檢驗(yàn)數(shù)據(jù)是否服從正態(tài)分布,用下面的代碼繪制 Punjab 州 CPI 數(shù)據(jù)的 QQ 圖:

Figure 6: Q-Q plot

Figure 6: Q-Q plot

??qqline?? 函數(shù)可以向正態(tài)分布 QQ 圖上添加理論分布曲線,它可以傳入以下參數(shù):

參數(shù)

描述

??x??

第一個(gè)數(shù)據(jù)樣本

??y??

第二個(gè)數(shù)據(jù)樣本

??datax??

邏輯型,設(shè)置是否以 x 軸表示理論曲線的值,默認(rèn)為 ??FALSE??

??probs??

長(zhǎng)度為 2 的數(shù)值向量,代表概率

??xlab??

x 軸標(biāo)題

??ylab??

y 軸標(biāo)題

??qtype??

??[1,9]??? 內(nèi)的整數(shù),設(shè)置分位計(jì)算類型,詳情見(jiàn) ??help(quantile)?? 的類型小節(jié)

等高圖

等高圖可以描述三維數(shù)據(jù),在 R 中對(duì)應(yīng)的函數(shù)是 ??contour???,這個(gè)函數(shù)也可以用來(lái)向已有的圖表添加等高線。等高圖常與其他圖表一起使用。我們用 ??contour??? 對(duì) R 中的 ??volcano?? 數(shù)據(jù)集(奧克蘭的火山地形信息)繪制等高圖,代碼如下:

Figure 7: Volcano

Figure 7: Volcano

??contour?? 函數(shù)的常用參數(shù)如下:

參數(shù)

描述

??x,y??

z 中數(shù)值對(duì)應(yīng)的點(diǎn)在平面上的位置

??z??

數(shù)值向量

??nlevels??

設(shè)置等高線的條數(shù),調(diào)整等高線的疏密

??labels??

等高線上的標(biāo)記字符串,默認(rèn)是高度的數(shù)值

??xlim??

設(shè)置 x 軸的范圍

??ylim??

設(shè)置 y 軸的范圍

??zlim??

設(shè)置 z 軸的范圍

??axes??

設(shè)置是否繪制坐標(biāo)軸

??col??

設(shè)置等高線的顏色

??lty??

設(shè)置線條的類型

??lwd??

設(shè)置線條的粗細(xì)

??vfont??

設(shè)置標(biāo)簽字體

等高線之間的區(qū)域可以用顏色填充,每種顏色表示一個(gè)高度范圍,如下所示:

填充結(jié)果見(jiàn)圖 8。

Figure 8: Filled volcano

Figure 8: Filled volcano

掌握上述內(nèi)容后,你可以嘗試 R 語(yǔ)言 ??graphics??? 包中的其他函數(shù)和圖表(LCTT 譯注:用 ??help(package=graphics)?? 可以查看 graphics 包提供的函數(shù)列表)。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2015-07-22 10:57:36

watchOS圖表自定義

2015-07-29 11:14:20

r語(yǔ)言數(shù)據(jù)科學(xué)

2017-06-13 15:37:21

大數(shù)據(jù)圖表繪制常用軟件

2011-06-13 17:17:22

Qt 繪圖 QWT

2021-05-10 15:14:23

Python棒棒糖圖表

2018-08-03 11:58:07

美團(tuán)分布式數(shù)據(jù)處理可視化

2015-08-18 13:33:16

r語(yǔ)言

2023-10-07 09:34:03

數(shù)據(jù)可視化

2021-09-24 09:45:27

Python神經(jīng)網(wǎng)絡(luò)人工智能

2022-08-23 12:32:37

Python可視化圖表

2013-05-31 10:15:29

R語(yǔ)言

2018-04-20 09:06:11

R語(yǔ)言數(shù)據(jù)存儲(chǔ)

2013-05-22 08:55:14

R語(yǔ)言

2017-07-05 14:42:13

2022-05-16 09:34:17

Python可視化圖表

2017-01-10 09:15:11

2013-05-24 10:01:40

R語(yǔ)言

2012-06-05 10:02:59

大數(shù)據(jù)R語(yǔ)言

2020-07-09 15:21:58

大數(shù)據(jù)RStudioR語(yǔ)言

2015-11-10 10:10:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)