【R语言编程绘图-折线图】

安装与加载GGPLOT2库

确保已安装ggplot2库,若未安装可通过以下命令安装:

r 复制代码
install.packages("ggplot2")

加载库:

r 复制代码
library(ggplot2)

准备数据

假设有一个包含时间序列数据的数据框df,包含两列:date(日期)和value(数值)。示例数据生成:

r 复制代码
df <- data.frame(
  date = seq(as.Date("2023-01-01"), as.Date("2023-12-31"), by = "month"),
  value = c(15, 18, 22, 25, 30, 28, 26, 24, 20, 18, 16, 14)
)

基础折线图绘制

使用geom_line()绘制折线图:

r 复制代码
ggplot(df, aes(x = date, y = value)) +
  geom_line()

自定义折线图样式

调整线条颜色、粗细和添加点标记:

r 复制代码
ggplot(df, aes(x = date, y = value)) +
  geom_line(color = "blue", linewidth = 1) +
  geom_point(color = "red", size = 3)

添加标题与坐标轴标签

通过labs()函数设置标题和标签:

r 复制代码
ggplot(df, aes(x = date, y = value)) +
  geom_line(color = "blue") +
  labs(title = "Monthly Value Trends (2023)",
       x = "Date",
       y = "Value")

调整坐标轴格式

例如将日期格式化为月份缩写:

r 复制代码
ggplot(df, aes(x = date, y = value)) +
  geom_line(color = "blue") +
  scale_x_date(date_labels = "%b") +
  labs(title = "Monthly Trends", x = "Month", y = "Value")

多系列折线图

若数据包含分组(如category列),可通过aes(color)区分不同系列:

r 复制代码
df_multi <- data.frame(
  date = rep(seq(as.Date("2023-01-01"), as.Date("2023-06-01"), by = "month"), 2),
  value = c(15, 18, 22, 25, 30, 28, 10, 12, 15, 18, 20, 22),
  category = rep(c("A", "B"), each = 6)
)

ggplot(df_multi, aes(x = date, y = value, color = category)) +
  geom_line() +
  labs(title = "Multi-Series Line Chart")
复制代码
# 加载必要的库
library(ggplot2)

# 生成数据
df <- data.frame(
  date = seq(as.Date("2023-01-01"), by = "day", length.out = 100),
  value = cumsum(rnorm(100))
)

# 绘制折线图
p <- ggplot(df, aes(x = date, y = value)) +
  geom_line(color = "blue", size = 1) +  # 使用蓝色线条,适当调整线条粗细
  labs(title = "Time Series Plot of Random Values",  # 标题
       x = "Date",  # X轴标签
       y = "Cumulative Sum of Random Values") +  # Y轴标签
  theme_classic() +  # 使用经典主题
  theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),  # 标题样式
        axis.title = element_text(size = 14, face = "bold"),  # 轴标题样式
        axis.text = element_text(size = 12),  # 轴刻度标签样式
        legend.position = "none")  # 移除图例(如果不需要)

# 保存为高分辨率图像
ggsave("time_series_plot.png", plot = p, width = 8, height = 6, dpi = 300)

# 显示图像
print(p)
相关推荐
likuolei13 分钟前
XML 元素 vs. 属性
xml·java·开发语言
X***489617 分钟前
C源代码生成器
c语言·开发语言
梁正雄23 分钟前
2、Python流程控制
开发语言·python
catchadmin1 小时前
PHP True Async RFC 被拒——原生异步离 PHP 还有多远?
开发语言·php
J***79391 小时前
PHP在电商中的Magento
开发语言·php
python零基础入门小白1 小时前
【万字长文】大模型应用开发:意图路由与查询重写设计模式(从入门到精通)
java·开发语言·设计模式·语言模型·架构·大模型应用开发·大模型学习
天若有情6732 小时前
【c++】手撸C++ Promise:从零实现通用异步回调组件,支持链式调用+异常安全
开发语言·前端·javascript·c++·promise
无心水2 小时前
【Python实战进阶】1、Python高手养成指南:四阶段突破法从入门到架构师
开发语言·python·django·matplotlib·gil·python实战进阶·python工程化实战进阶
q***31832 小时前
Windows安装Rust环境(详细教程)
开发语言·windows·rust
合作小小程序员小小店2 小时前
桌面安全开发,桌面二进制%恶意行为拦截查杀%系统安全开发3.0,基于c/c++语言,mfc,win32,ring3,dll,hook,inject,无数据库
c语言·开发语言·c++·安全·系统安全