R note book 文檔–輸出html格式文檔,plotly不能生成PDF文件
---
title: "R語言數據可視化"
output: html_notebook
---
在R語言中進行數據可視化是數據分析和呈現的重要環節,R提供了多種強大的繪圖系統和工具。以下是常見的數據可視化方法和示例,從基礎到高級逐步介紹:
1. 基礎繪圖系統(Base R Graphics)
R內置的基礎繪圖函數,適合快速生成簡單圖表。
散點圖
# 示例數據
x <- 1:10
y <- x^2# 繪制散點圖
plot(x, y, main = "散點圖示例", # 標題xlab = "X軸", ylab = "Y軸", # 坐標軸標簽pch = 16, # 點的形狀col = "blue", # 點的顏色cex = 1.5) # 點的大小
折線圖
# 生成數據
time <- seq(1, 10, by = 0.5)
values <- sin(time)# 繪制折線圖
plot(time, values, type = "l", # type="l"表示折線圖main = "正弦曲線",xlab = "時間", ylab = "值",col = "red", lwd = 2) # 線寬為2
箱線圖
# 使用內置數據集mtcars
data(mtcars)# 按氣缸數(cyl)分組繪制mpg的箱線圖
boxplot(mpg ~ cyl, data = mtcars,main = "不同氣缸數車輛的MPG分布",xlab = "氣缸數", ylab = "每加侖英里數(MPG)",col = c("lightblue", "lightgreen", "lightpink"))
2. ggplot2包(推薦)
基于圖形語法的高級繪圖系統,適合創建復雜、精美的圖表。
安裝與加載
#install.packages("ggplot2") # 首次使用需安裝
library(ggplot2)
散點圖
# 使用內置數據集iris
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +geom_point(size = 3) + # 散點圖層labs(title = "鳶尾花萼片長度與寬度關系",x = "萼片長度(cm)", y = "萼片寬度(cm)") +theme_minimal() # 使用簡潔主題
柱狀圖
# 統計不同Species的數量
ggplot(iris, aes(x = Species)) +geom_bar(fill = "skyblue", color = "black") + # 柱狀圖層labs(title = "鳶尾花種類分布", x = "種類", y = "數量") +theme_classic() # 使用經典主題
箱線圖與小提琴圖
ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +geom_boxplot(alpha = 0.7) + # 箱線圖層geom_violin(alpha = 0.3) + # 小提琴圖層(顯示密度分布)labs(title = "不同種類鳶尾花花瓣長度分布",x = "種類", y = "花瓣長度(cm)")
3. 高級可視化
熱圖(Heatmap)
# 使用內置數據集mtcars
cor_matrix <- cor(mtcars) # 計算相關系數矩陣# 繪制熱圖
heatmap(cor_matrix, main = "汽車特征相關性熱圖",col = cm.colors(256), # 顏色漸變scale = "column") # 按列標準化
直方圖與密度圖
# 使用ggplot2繪制直方圖與密度圖
ggplot(iris, aes(x = Sepal.Length)) +geom_histogram(aes(y = ..density..), # 直方圖(顯示密度)bins = 15, fill = "lightblue", color = "black") +geom_density(alpha = 0.2, fill = "blue") + # 密度曲線facet_wrap(~ Species) + # 按種類分面labs(title = "鳶尾花萼片長度分布", x = "萼片長度(cm)", y = "密度")
氣泡圖(散點圖+大小/顏色映射)
# 使用ggplot2繪制氣泡圖
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +geom_point(aes(size = Petal.Length, color = Species), alpha = 0.7) + # alpha設置透明度scale_size_continuous(range = c(2, 10)) + # 控制點大小范圍labs(title = "鳶尾花特征氣泡圖",x = "萼片長度(cm)", y = "萼片寬度(cm)",size = "花瓣長度", color = "種類") +theme_bw() # 使用黑白主題
4. 交互式可視化(plotly)
創建可交互的圖表,適合網頁展示或數據分析。
安裝與基本用法
#install.packages("plotly")
library(plotly)# 將ggplot2圖表轉為交互式
p <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +geom_point(size = 3)ggplotly(p) # 轉為交互式圖表
3D散點圖
# 創建3D散點圖
plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width, z = ~Petal.Length,color = ~Species, type = "scatter3d", mode = "markers") %>%layout(title = "鳶尾花3D特征散點圖")
5. 數據可視化注意事項
- 選擇合適的圖表類型:根據數據類型和分析目的選擇(如比較用柱狀圖,分布用箱線圖,關系用散點圖)。
- 保持簡潔:避免過多裝飾元素,確保數據是焦點。
- 使用適當的顏色:避免使用過于鮮艷或難以區分的顏色,考慮色盲用戶。
- 添加必要標簽:確保圖表標題、坐標軸標簽、圖例清晰。
- 優化布局:合理安排圖表大小、比例和間距。
6. 資源推薦
- ggplot2官方文檔
- R Graphics Cookbook
- Plotly for R:
通過以上方法,你可以在R中創建從簡單到復雜的各種數據可視化圖表,滿足不同的分析和展示需求。