用vs2012做網(wǎng)站案例樂(lè)天seo培訓(xùn)
R語(yǔ)言畫散點(diǎn)圖-餅圖-折線圖-柱狀圖-箱線圖-直方圖-曲線圖-熱力圖-雷達(dá)圖
- 散點(diǎn)圖
- 示例
- 解析
- 效果
- 餅圖
- 示例
- 解析
- 效果
- 折線圖
- 示例
- 解析
- 效果
- 柱狀圖
- 示例
- 解析
- 效果
- 箱線圖
- 示例
- 解析
- 效果
- 直方圖
- 示例
- 解析
- 效果
- 曲線圖
- 使用 curve() 函數(shù)
- 示例
- 效果
- 使用 plot() 函數(shù)
- 示例
- 效果
- 使用 ggplot2 包繪制
- 示例
- 解析
- 效果
- 熱力圖
- 使用 heatmap() 函數(shù)
- 示例
- 效果
- 使用 pheatmap 包
- 示例
- 效果
- 使用 ggplot2 包和 geom_tile() 函數(shù)
- 示例
- 解析
- 效果
- 雷達(dá)圖
- 示例
- 解析
- 效果
散點(diǎn)圖
使用基礎(chǔ)的plot()函數(shù)可以很容易地繪制散點(diǎn)圖~ 散點(diǎn)圖通常用于展示兩個(gè)連續(xù)變量之間的關(guān)系,例如顯示其之間的相關(guān)性或者分布情況
示例
假設(shè)有如下數(shù)據(jù)集 data,包含了兩個(gè)變量 x 和 y:
# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123) # 設(shè)置隨機(jī)種子以確保示例的可重現(xiàn)性
data <- data.frame(x = rnorm(100), # 隨機(jī)生成100個(gè)符合標(biāo)準(zhǔn)正態(tài)分布的x值y = rnorm(100) # 隨機(jī)生成100個(gè)符合標(biāo)準(zhǔn)正態(tài)分布的y值
)# 繪制散點(diǎn)圖
plot(data$x, data$y,main = "散點(diǎn)圖示例", # 圖表標(biāo)題xlab = "變量X", # x軸標(biāo)簽ylab = "變量Y", # y軸標(biāo)簽col = "blue", # 散點(diǎn)顏色pch = 16, # 散點(diǎn)形狀(16表示實(shí)心圓)xlim = c(-3, 3), # x軸范圍ylim = c(-3, 3) # y軸范圍
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- 使用 rnorm(100) 生成了符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)據(jù)作為示例的 x 和 y 變量
2. 繪制散點(diǎn)圖:
- plot(data x , d a t a x, data x,datay, …):使用 plot() 函數(shù)繪制散點(diǎn)圖,其中 data x 和 d a t a x 和 data x和datay 分別是數(shù)據(jù)集中的 x 和 y 變量
- main, xlab, ylab 分別設(shè)置圖表的標(biāo)題和軸標(biāo)簽
- col 設(shè)置散點(diǎn)的顏色為藍(lán)色
- pch 設(shè)置散點(diǎn)的形狀為實(shí)心圓(16表示實(shí)心圓,可以根據(jù)需要選擇不同的形狀)
- xlim 和 ylim 分別設(shè)置了 x 軸和 y 軸的顯示范圍
效果
餅圖
畫餅圖通常使用pie()函數(shù)來(lái)實(shí)現(xiàn),餅圖適合用于展示各部分占整體的比例關(guān)系,如市場(chǎng)份額、各類別的比例等
示例
假設(shè)有如下數(shù)據(jù)集 data,包含了各部分的名稱和相應(yīng)的數(shù)值:
# 創(chuàng)建示例數(shù)據(jù)集
data <- c(25, 35, 20, 10, 10) # 各部分的數(shù)值,總和為100%# 部分的標(biāo)簽
labels <- c("部分1", "部分2", "部分3", "部分4", "部分5")# 顏色
colors <- c("red", "orange", "yellow", "green", "blue")# 繪制餅圖
pie(data, labels = labels, col = colors,main = "餅圖示例", # 圖表標(biāo)題clockwise = TRUE, # 是否順時(shí)針顯示,默認(rèn)為TRUEradius = 1 # 餅圖半徑,默認(rèn)為1
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- data 含有各部分的數(shù)值,這些數(shù)值表示每個(gè)部分占整體的百分比。在示例中,總和為100%
- labels 包含了每個(gè)部分的標(biāo)簽,用于在餅圖中顯示每個(gè)部分的名稱
- colors 是一個(gè)向量,用于指定每個(gè)部分的顏色。在示例中,使用了五種顏色來(lái)區(qū)分不同的部分
2. 繪制餅圖:
- pie(data, labels = labels, col = colors, …):使用 pie() 函數(shù)繪制餅圖
- labels = labels 將 labels 中的標(biāo)簽應(yīng)用到相應(yīng)的部分
- col = colors 指定每個(gè)部分的顏色
- main = “餅圖示例” 設(shè)置餅圖的標(biāo)題
- clockwise = TRUE 表示餅圖的部分按順時(shí)針?lè)较蝻@示
- radius = 1 設(shè)置餅圖的半徑,默認(rèn)為1
效果
折線圖
畫折線圖通常使用plot()函數(shù)或者更專門用于繪制折線圖的plot()函數(shù)來(lái)實(shí)現(xiàn)。折線圖適合展示隨時(shí)間變化的數(shù)據(jù)趨勢(shì)或者連續(xù)變量之間的關(guān)系
示例
假設(shè)有如下數(shù)據(jù)集 data,包含了隨時(shí)間變化的兩個(gè)連續(xù)變量 time 和 value:
# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123) # 設(shè)置隨機(jī)種子以確保示例的可重現(xiàn)性
data <- data.frame(time = 1:10, # 時(shí)間序列,假設(shè)為10個(gè)時(shí)間點(diǎn)value = cumsum(rnorm(10)) # 隨機(jī)生成的累積值,模擬隨時(shí)間變化的數(shù)據(jù)
)# 繪制折線圖
plot(data$time, data$value,type = "l", # 指定繪制類型為折線圖main = "折線圖示例", # 圖表標(biāo)題xlab = "時(shí)間", # x軸標(biāo)簽ylab = "數(shù)值", # y軸標(biāo)簽col = "red", # 折線顏色lwd = 2 # 折線寬度
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- data$time 是時(shí)間序列,假設(shè)為1到10,代表數(shù)據(jù)的時(shí)間點(diǎn)
- data$value 是隨時(shí)間變化的數(shù)據(jù)值,使用 cumsum(rnorm(10)) 生成了一個(gè)隨機(jī)累積值序列,模擬隨時(shí)間變化的數(shù)據(jù)趨勢(shì)
2. 繪制折線圖:
- plot(data t i m e , d a t a time, data time,datavalue, …):使用 plot() 函數(shù)繪制折線圖
- type = “l(fā)” 指定繪制類型為折線圖,這樣會(huì)連接各個(gè)數(shù)據(jù)點(diǎn)形成折線
- main = “折線圖示例” 設(shè)置圖表的標(biāo)題
- xlab = “時(shí)間” 和 ylab = “數(shù)值” 分別設(shè)置 x 軸和 y 軸的標(biāo)簽
- col = “red” 設(shè)置折線的顏色為紅色
- lwd = 2 設(shè)置折線的寬度為2個(gè)像素
效果
柱狀圖
畫柱狀圖通常會(huì)使用barplot()函數(shù)來(lái)實(shí)現(xiàn)。柱狀圖適合用于比較不同類別之間的數(shù)據(jù)量或者頻率
示例
假設(shè)有如下數(shù)據(jù)集 data,包含了各類別的數(shù)值:
# 創(chuàng)建示例數(shù)據(jù)集
data <- c(10, 20, 15, 25, 30) # 各類別的數(shù)值# 類別的標(biāo)簽
names <- c("類別1", "類別2", "類別3", "類別4", "類別5")# 繪制柱狀圖
barplot(data, names.arg = names,main = "柱狀圖示例", # 圖表標(biāo)題xlab = "類別", # x軸標(biāo)簽ylab = "數(shù)值", # y軸標(biāo)簽col = "skyblue", # 柱子的填充顏色ylim = c(0, 35) # y軸范圍
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- data 包含各個(gè)類別的數(shù)值,這些數(shù)值將用來(lái)繪制柱狀圖
- names 包含每個(gè)類別的名稱,用于在柱狀圖中顯示類別標(biāo)簽
2. 繪制柱狀圖:
- barplot(data, names.arg = names, …):使用 barplot() 函數(shù)繪制柱狀圖
- names.arg = names 將 names 中的標(biāo)簽應(yīng)用到相應(yīng)的柱子上
- main = “柱狀圖示例” 設(shè)置圖表的標(biāo)題
- xlab = “類別” 和 ylab = “數(shù)值” 分別設(shè)置 x 軸和 y 軸的標(biāo)簽
- col = “skyblue” 設(shè)置柱子的填充顏色為天藍(lán)色
- ylim = c(0, 35) 設(shè)置 y 軸的顯示范圍,確保柱狀圖的高度合適顯示
效果
箱線圖
畫箱線圖通??梢允褂胋oxplot()函數(shù),箱線圖常用于展示數(shù)據(jù)的分布情況,包括數(shù)據(jù)的中位數(shù)、四分位數(shù)、異常值等信息
示例
假設(shè)有如下數(shù)據(jù)集 data,包含了一組數(shù)據(jù):
# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123) # 設(shè)置隨機(jī)種子以確保示例的可重現(xiàn)性
data <- list(group1 = rnorm(100, mean = 0, sd = 1), # 第一組數(shù)據(jù),符合標(biāo)準(zhǔn)正態(tài)分布group2 = rnorm(100, mean = 1, sd = 1) # 第二組數(shù)據(jù),均值為1的正態(tài)分布
)# 繪制箱線圖
boxplot(data,names = c("組別1", "組別2"), # 設(shè)置每組數(shù)據(jù)的名稱main = "箱線圖示例", # 圖表標(biāo)題xlab = "組別", # x軸標(biāo)簽ylab = "數(shù)據(jù)值", # y軸標(biāo)簽col = c("skyblue", "salmon") # 箱體的填充顏色
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- data 包含兩組數(shù)據(jù),每組數(shù)據(jù)有100個(gè)樣本
- group1 是符合標(biāo)準(zhǔn)正態(tài)分布的數(shù)據(jù)
- group2 是均值為1的正態(tài)分布數(shù)據(jù)
2. 繪制箱線圖:
- boxplot(data, …):使用 boxplot() 函數(shù)繪制箱線圖
- names = c(“組別1”, “組別2”) 設(shè)置每組數(shù)據(jù)的名稱
- main = “箱線圖示例” 設(shè)置圖表的標(biāo)題
- xlab = “組別” 和 ylab = “數(shù)據(jù)值” 分別設(shè)置 x 軸和 y 軸的標(biāo)簽
- col = c(“skyblue”, “salmon”) 設(shè)置箱體的填充顏色,分別對(duì)應(yīng)兩組數(shù)據(jù)
效果
直方圖
直方圖是一種展示數(shù)據(jù)分布的常用圖形,它通過(guò)將數(shù)據(jù)范圍分成若干個(gè)連續(xù)的區(qū)間,并用矩形的面積來(lái)表示在每個(gè)區(qū)間內(nèi)數(shù)據(jù)點(diǎn)的頻數(shù)或頻率,直方圖可以直觀地了解數(shù)據(jù)的分布形態(tài),如數(shù)據(jù)的集中趨勢(shì)、分散程度和異常值等
示例
# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123) # 設(shè)置隨機(jī)種子以確保示例的可重現(xiàn)性
data <- rnorm(500) # 生成500個(gè)符合正態(tài)分布的隨機(jī)數(shù)# 繪制直方圖
hist(data,main = "直方圖示例", # 圖表標(biāo)題xlab = "數(shù)據(jù)值", # x軸標(biāo)簽ylab = "頻數(shù)", # y軸標(biāo)簽col = "lightblue", # 矩形填充顏色breaks = 20, # 設(shè)置區(qū)間的數(shù)量border = "black" # 矩形邊框顏色
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- 使用rnorm(500)生成500個(gè)符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)作為示例數(shù)據(jù)
2. 繪制直方圖:
- hist(data, …):使用hist()函數(shù)繪制直方圖
- main = "直方圖示例"設(shè)置圖表的標(biāo)題
- xlab = "數(shù)據(jù)值"和ylab = "頻數(shù)"分別設(shè)置x軸和y軸的標(biāo)簽
- col = "lightblue"設(shè)置矩形填充顏色為淺藍(lán)色
- breaks = 20指定數(shù)據(jù)范圍被分成20個(gè)區(qū)間來(lái)繪制直方圖。這個(gè)參數(shù)會(huì)影響直方圖的平滑度和細(xì)節(jié)展示
- border = "black"設(shè)置了矩形邊框顏色為黑色。
效果
曲線圖
繪制曲線圖主要用于展示函數(shù)或曲線的形狀和變化??墒褂没镜?plot() 函數(shù)或 curve() 函數(shù)來(lái)繪制曲線圖
使用 curve() 函數(shù)
curve() 函數(shù)用于繪制數(shù)學(xué)函數(shù)的曲線圖。這個(gè)函數(shù)特別適合用于繪制連續(xù)的數(shù)學(xué)函數(shù)曲線
示例
# 繪制正態(tài)分布函數(shù)的曲線圖
curve(dnorm(x, mean = 0, sd = 1), from = -4, to = 4,main = "正態(tài)分布曲線圖",xlab = "X軸",ylab = "Y軸",col = "blue",lwd = 2)
效果
使用 plot() 函數(shù)
如果需要畫離散的數(shù)據(jù)點(diǎn),或想要繪制自定義的曲線,可以使用 plot() 函數(shù)配合 lines() 或 points() 函數(shù)來(lái)實(shí)現(xiàn)
示例
# 創(chuàng)建自定義數(shù)據(jù)
x <- seq(-2, 2, length.out = 100) # 創(chuàng)建從-2到2的100個(gè)均勻分布的點(diǎn)
y <- x^3 # 計(jì)算每個(gè)點(diǎn)的立方值# 繪制曲線圖
plot(x, y, type = "l", col = "red", lwd = 2,main = "自定義曲線圖",xlab = "X軸",ylab = "Y軸")
效果
使用 ggplot2 包繪制
ggplot2 是一個(gè)強(qiáng)大的繪圖系統(tǒng),不必過(guò)多闡述~ 其可用于繪制更復(fù)雜的圖形
示例
# 加載ggplot2包
library(ggplot2)# 創(chuàng)建數(shù)據(jù)框
data <- data.frame(x = seq(-2, 2, length.out = 100),y = seq(-2, 2, length.out = 100)^3
)# 繪制曲線圖
ggplot(data, aes(x = x, y = y)) +geom_line(color = "blue", size = 1) +labs(title = "自定義曲線圖",x = "X軸",y = "Y軸") +theme_minimal()
解析
1. 使用 curve()函數(shù):
- curve(dnorm(x, mean = 0, sd = 1), from = -4, to = 4, …) 用于繪制正態(tài)分布曲線,其中 dnorm() 是正態(tài)分布的密度函數(shù)
- from 和 to 參數(shù)設(shè)置x軸的范圍
- col 和 lwd 參數(shù)設(shè)置曲線的顏色和寬度
2. 使用 plot()和 lines()函數(shù):
- plot(x, y, type = “l(fā)”, …) 繪制自定義的數(shù)據(jù)點(diǎn),并使用 type = “l(fā)” 參數(shù)指定繪制線條
- x 和 y 是x軸和y軸的數(shù)值。
3. 使用 ggplot2包:
- ggplot(data, aes(x = x, y = y)) 創(chuàng)建一個(gè)基本的 ggplot 對(duì)象
- geom_line() 繪制曲線
- labs() 設(shè)置標(biāo)題和軸標(biāo)簽
- theme_minimal() 設(shè)置圖表的主題樣式
效果
熱力圖
熱力圖是一種用于可視化矩陣數(shù)據(jù)中數(shù)值大小的圖形,通過(guò)顏色編碼展示數(shù)據(jù)的強(qiáng)度或密度。熱力圖常用于展示數(shù)據(jù)的模式和關(guān)系,特別是在數(shù)據(jù)分析和生物信息學(xué)中
使用 heatmap() 函數(shù)
heatmap() 是R基礎(chǔ)包中提供的一個(gè)函數(shù),用于繪制簡(jiǎn)單的熱力圖。它適合于處理矩陣形式的數(shù)據(jù),并能夠展示數(shù)據(jù)的相對(duì)大小
示例
# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123) # 設(shè)置隨機(jī)種子以確保結(jié)果的可重現(xiàn)性
matrix_data <- matrix(rnorm(100), nrow = 10) # 生成10x10的隨機(jī)矩陣數(shù)據(jù)# 繪制熱力圖
heatmap(matrix_data,main = "熱力圖示例",xlab = "列",ylab = "行",col = cm.colors(256), # 顏色選擇scale = "none", # 不對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化margins = c(5, 10) # 設(shè)置邊距
)
效果
使用 pheatmap 包
pheatmap 包提供更多定制選項(xiàng)和改進(jìn)的熱力圖功能,適用于更復(fù)雜的數(shù)據(jù)可視化
示例
需先確保已安裝了 pheatmap 包:
install.packages("pheatmap")
# 加載pheatmap包
library(pheatmap)# 創(chuàng)建示例數(shù)據(jù)集
set.seed(123)
matrix_data <- matrix(rnorm(100), nrow = 10) # 生成10x10的隨機(jī)矩陣數(shù)據(jù)# 繪制熱力圖
pheatmap(matrix_data,main = "pheatmap示例",color = colorRampPalette(c("blue", "white", "red"))(50), # 顏色漸變scale = "row", # 按行標(biāo)準(zhǔn)化cluster_rows = TRUE, # 行聚類cluster_cols = TRUE, # 列聚類show_rownames = TRUE, # 顯示行名show_colnames = TRUE # 顯示列名
)
效果
使用 ggplot2 包和 geom_tile() 函數(shù)
ggplot2 提供的geom_tile函數(shù)適合創(chuàng)建個(gè)性化的熱力圖
示例
# 加載ggplot2包
library(ggplot2)# 創(chuàng)建數(shù)據(jù)框
set.seed(123)
matrix_data <- matrix(rnorm(100), nrow = 10)
data_long <- as.data.frame(as.table(matrix_data)) # 將矩陣數(shù)據(jù)轉(zhuǎn)換為長(zhǎng)格式數(shù)據(jù)框# 繪制熱力圖
ggplot(data_long, aes(x = Var2, y = Var1, fill = Freq)) +geom_tile() +scale_fill_gradient(low = "blue", high = "red") +labs(title = "ggplot2熱力圖示例",x = "列",y = "行",fill = "值") +theme_minimal()
解析
1. 使用 heatmap()函數(shù):
- matrix_data 是一個(gè)生成的10x10的隨機(jī)矩陣
- col = cm.colors(256) 設(shè)置熱力圖的顏色漸變,cm.colors 是顏色函數(shù)
- scale = “none” 表示不對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化(即原始數(shù)據(jù)被直接用于繪圖)
2. 使用 pheatmap包:
- color = colorRampPalette(c(“blue”, “white”, “red”))(50) 設(shè)置顏色漸變,從藍(lán)色到紅色
- scale = “row” 表示對(duì)數(shù)據(jù)按行進(jìn)行標(biāo)準(zhǔn)化
- cluster_rows 和 cluster_cols 控制是否對(duì)行和列進(jìn)行聚類
3. 使用 ggplot2包:
- geom_tile() 用于繪制熱力圖的每個(gè)單元格
- scale_fill_gradient(low = “blue”, high = “red”) 設(shè)置顏色漸變的范圍
- as.table(matrix_data) 將矩陣數(shù)據(jù)轉(zhuǎn)換為適合 ggplot2 的長(zhǎng)格式數(shù)據(jù)框
效果
雷達(dá)圖
要畫雷達(dá)圖(也稱為蜘蛛圖或極坐標(biāo)圖),可使用fmsb包提供的函數(shù)來(lái)實(shí)現(xiàn),雷達(dá)圖適合用于展示多個(gè)變量的相對(duì)大小或比較不同類別在不同維度上的表現(xiàn)
示例
需確保你已經(jīng)安裝了fmsb包:
install.packages("fmsb")
# 創(chuàng)建示例數(shù)據(jù)集
data <- data.frame(Category = c("A", "B", "C", "D", "E"), # 類別Var1 = c(20, 15, 25, 30, 35), # 變量1Var2 = c(25, 20, 30, 35, 40), # 變量2Var3 = c(30, 35, 40, 45, 50) # 變量3
)# 加載fmsb包
library(fmsb)# 將數(shù)據(jù)標(biāo)準(zhǔn)化處理,將數(shù)值轉(zhuǎn)換為角度
data_norm <- data.frame(data[,-1] / apply(data[,-1], 1, max) # 標(biāo)準(zhǔn)化處理,除以各行中的最大值
)# 設(shè)置雷達(dá)圖參數(shù)
radarchart(data_norm, # 使用標(biāo)準(zhǔn)化處理后的數(shù)據(jù)pcol = c("skyblue"), # 多邊形的填充顏色plwd = 2, # 多邊形線條的寬度cglcol = "black", # 各個(gè)多邊形的顏色cglty = 1, # 多邊形線條的類型axislabcol = "black", # 坐標(biāo)軸標(biāo)簽的顏色title = "雷達(dá)圖示例", # 圖表標(biāo)題vlcex = 0.8 # 標(biāo)簽文本的大小
)
解析
1. 創(chuàng)建數(shù)據(jù)集:
- data 包含不同類別在多個(gè)維度上的數(shù)值,例如變量1、變量2和變量3
2. 使用fmsb包繪制雷達(dá)圖:
- data_norm 對(duì)原始數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,確保各個(gè)維度的數(shù)據(jù)在相同的比例下進(jìn)行比較
- radarchart() 函數(shù)用于繪制雷達(dá)圖,其中參數(shù)設(shè)置多邊形的填充顏色、線條寬度、坐標(biāo)軸標(biāo)簽顏色、圖表標(biāo)題等