做ref="/tag/426/" style="color:#EB6E00;font-weight:bold;">数据分析时,经常要观察数据的变化趋势。比如你是个电商运营,想看看最近30天的订单量走势;或者你是学生,要交一份课程作业,展示某城市近十年的气温变化。这时候,画个折线图最直观。
用R语言画折线图其实很简单
R自带的plot()函数就能快速出图。假设你有一组时间序列数据:
x <- 1:10
y <- c(2, 4, 7, 9, 12, 15, 18, 20, 23, 25)
plot(x, y, type = "l")
这里的type = "l"表示画成线(line),如果你还想在每个数据点上加个标记,可以改成type = "b",就是“both”线和点都显示。
美化图形:加标题、坐标轴标签
光有线太单调,加上说明才清楚。改一行代码就行:
plot(x, y, type = "l",
main = "订单量增长趋势",
xlab = "日期",
ylab = "订单数",
col = "blue",
lwd = 2)
main是主标题,xlab和ylab是坐标轴标签,col控制线条颜色,lwd是线宽。试试不同参数,调到你觉得顺眼为止。
多个系列对比?也能画
比如你想对比今年和去年的销量。先画第一条线,再用lines()加第二条:
y2 <- c(1, 3, 5, 8, 10, 13, 16, 19, 21, 22)
plot(x, y, type = "l", col = "red", ylim = range(c(y, y2)))
lines(x, y2, col = "green")
legend("topleft", legend = c("今年", "去年"),
col = c("red", "green"), lty = 1)
ylim统一了纵轴范围,不然第二条线可能出界。legend()加图例,一看就知道哪条代表啥。
用ggplot2画更漂亮的图
如果你不满足于基础样式,推荐试试ggplot2。它语法稍微多点,但做出的图更适合拿去汇报或发报告。
先准备数据框:
library(ggplot2)
data <- data.frame(
day = rep(1:10, 2),
sales = c(y, y2),
year = rep(c("今年", "去年"), each = 10)
)
然后画图:
ggplot(data, aes(x = day, y = sales, color = year)) +
geom_line() +
labs(title = "年度销售趋势对比", x = "第几天", y = "销售额") +
theme_minimal()
看着是不是顺眼多了?颜色自动区分,图例也整齐,改主题还能换个风格。
平时处理Excel表格时,导出CSV文件后直接用R读进来,几行代码就能把数据变成清晰的折线图。不用手动点图表向导,也不怕格式错乱。熟悉之后,效率提升很明显。