欢迎光临
我们一直在努力

R绘图:从基础到高级散点图技巧

R 绘图 – 散点图基础

散点图是数据可视化中最常用的工具之一,用于展示两个连续变量之间的关系。R 语言提供了多种绘制散点图的方法,最常用的是 plot() 函数和 ggplot2 包。

使用 plot() 函数绘制散点图:

# 生成示例数据
x <- rnorm(50, mean = 0, sd = 1)
y <- rnorm(50, mean = 0, sd = 1)

# 绘制基础散点图
plot(x, y,
main = "基础散点图示例",
xlab = "X 变量",
ylab = "Y 变量",
col = "blue",
pch = 16)

使用 ggplot2 绘制散点图

ggplot2 是 R 中最流行的绘图包之一,提供更灵活和美观的绘图选项。

基础 ggplot2 散点图:

library(ggplot2)

# 创建数据框
df <- data.frame(x = x, y = y)

# 绘制散点图
ggplot(df, aes(x = x, y = y)) +
geom_point(color = "red", size = 3) +
ggtitle("ggplot2 散点图示例") +
xlab("X 值") +
ylab("Y 值") +
theme_minimal()

散点图的高级定制

可以通过多种方式增强散点图的信息量,包括添加回归线、分组着色和调整点的大小。

添加回归线:

ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_smooth(method = "lm", color = "blue") +
ggtitle("带线性回归线的散点图")

分组着色和形状:

# 添加分组变量
df$group <- factor(sample(1:2, 50, replace = TRUE))

ggplot(df, aes(x = x, y = y, color = group, shape = group)) +
geom_point(size = 3) +
scale_color_manual(values = c("red", "blue")) +
ggtitle("分组散点图示例")

气泡图:大小映射变量

散点图可以通过点的大小表示第三个变量的值,这种图表称为气泡图。

# 添加大小变量
df$size <- runif(50, 1, 5)

ggplot(df, aes(x = x, y = y, size = size)) +
geom_point(alpha = 0.6) +
scale_size(range = c(1, 10)) +
ggtitle("气泡图示例")

散点图矩阵

当需要同时观察多个变量间的关系时,可以使用散点图矩阵。

使用 pairs() 函数:

pairs(iris[,1:4],
main = "鸢尾花数据集散点图矩阵",
pch = 21,
bg = c("red", "green", "blue")[unclass(iris$Species)])

使用 GGally 包的 ggpairs():

library(GGally)
ggpairs(iris, columns = 1:4,
mapping = aes(color = Species),
title = "鸢尾花数据集散点图矩阵")

交互式散点图

使用 plotly 包可以创建交互式散点图,允许用户悬停查看数据点详细信息。

library(plotly)
p <- ggplot(df, aes(x = x, y = y, text = paste("X:", x, "<br>Y:", y))) +
geom_point(color = "purple")
ggplotly(p, tooltip = "text") %>%
layout(title = "交互式散点图示例")

性能优化:大数据集散点图

处理大型数据集时,传统散点图可能性能不佳。可以考虑以下方法:

使用 hexbin 包绘制六边形分箱图:

library(hexbin)
# 生成大数据
big_data <- data.frame(x = rnorm(10000), y = rnorm(10000))
hexbinplot(y ~ x, data = big_data,
main = "大数据集六边形分箱图",
colramp = function(n) heat.colors(n))

使用 ggplot2 的 geom_bin2d():

ggplot(big_data, aes(x = x, y = y)) +
geom_bin2d(bins = 50) +
scale_fill_gradient(low = "blue", high = "red") +
ggtitle("二维分箱图")

散点图的美化技巧

通过调整各种参数可以使散点图更加美观和专业。

添加透明度避免重叠:

ggplot(df, aes(x = x, y = y)) +
geom_point(alpha = 0.5, color = "darkgreen") +
ggtitle("带透明度的散点图")

自定义主题和坐标轴:

ggplot(df, aes(x = x, y = y)) +
geom_point(color = "orange") +
theme_bw() +
theme(plot.title = element_text(size = 14, face = "bold"),
axis.title = element_text(size = 12)) +
labs(title = "自定义主题的散点图",
x = "自定义X轴标签",
y = "自定义Y轴标签")

这些代码示例涵盖了从基础到高级的散点图绘制技术,可以根据具体需求选择合适的绘图方法。

赞(0)
未经允许不得转载:171主机测评 » R绘图:从基础到高级散点图技巧
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址