如何按acquiYear创建多折线图:X轴month,Y轴nrOrders
按
acquiYear分组的多折线图实现方案 数据预处理
首先你的nrOrders列是字符类型,需要转换为数值型;另外month是月份缩写,要按自然月份顺序定义因子级别,避免绘图时X轴顺序混乱:
# 加载所需包 library(ggplot2) library(data.table) # 将nrOrders转为数值型 dt[, nrOrders := as.numeric(nrOrders)] # 定义月份的正确顺序 month_order <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") dt[, month := factor(month, levels = month_order, ordered = TRUE)]
绘制多折线图
使用ggplot2,以acquiYear作为分组和颜色区分维度,X轴对应month,Y轴对应nrOrders:
ggplot(dt, aes(x = month, y = nrOrders, group = acquiYear, color = acquiYear)) + geom_line(linewidth = 1) + geom_point(size = 2) + # 添加数据点提升可读性 labs( x = "月份", y = "订单数量", color = "获取年份", title = "各获取年份的月度订单数量趋势" ) + theme_minimal() + theme( plot.title = element_text(hjust = 0.5), # 标题居中 axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1) # 倾斜X轴标签避免重叠 )
替代处理方式(非data.table用户)
如果你的数据是普通data.frame,用dplyr预处理的代码如下:
library(dplyr) dt <- dt %>% mutate( nrOrders = as.numeric(nrOrders), month = factor(month, levels = month_order, ordered = TRUE) )
内容的提问来源于stack exchange,提问作者Miko
相关产品推荐
相关产品推荐

