一、什么是折线图
折线图是一种用折线将数据点连接起来的统计图表,通常用于显示数据随时间或某个变量的变化趋势。它的特点是:
-
X轴表示独立变量(如时间、序号等);
-
Y轴表示对应的数值;
-
各数据点通过线段连接,形状像“折线”。
二、折线图常见类型
1. 单线折线图:最基础、最常用
单线折线图的适用场景
当你有一组连续数据,想要看它随时间或某个变量的变化趋势时,单线折线图是最直接的选择。例如:
-
某产品一年的销量变化;
-
一个人体重的月度变化。
举个例子:
你想看看自己体重在过去一年中有没有变化?就可以用折线图来画出来,X轴是月份,Y轴是体重,把每个月的数值连接起来。如果体重总体是往下的,那就说明:你瘦了!
适用场景总结
-
展示单变量的变化趋势
-
分析时间序列数据
-
直观显示某指标的上升或下降
2. 多线折线图:对比趋势的利器
多线折线图的适用场景
当你有多组数据,并且希望放在同一个图里进行对比(比如两家公司同时期的股价),就用多线折线图。不同的数据线用不同颜色或样式区分,方便一眼比较。
举个例子:
你想比较两家公司的股票价格走势,就用多线折线图。X轴是日期,Y轴是股票价格,两条不同颜色的线,一眼看出:谁涨得快,谁跌得猛。
适用场景总结
-
多组数据的趋势对比
-
强调不同数据集在同一时间轴上的变化
-
可视化多个实验或项目的数据变化
3. 带标记的折线图:更清晰的数据展示
带标记折线图的适用场景
有时候,光是折线还不够直观,你还想看到每一个数据点的位置,这时候就加上标记。这种图既能看趋势,也能看细节。
举个例子:
你记录了10次跑步成绩,想看每一次的速度,还想看到具体的点,就用这种图。每个点都清楚显示成绩,线条把它们连起来,一眼看出:哪次进步,哪次退步。
适用场景总结
-
既要看趋势又要看具体数据点
-
数据点之间的差异很重要时
-
想让数据展示更醒目
你手上有什么数据? | 用哪种折线图? |
---|---|
一组数据(例:某产品月销量) | 单线折线图 |
多组数据(例:两家公司的股价走势) | 多线折线图 |
一组数据,且需要清楚标出每个点(例:10次跑步成绩) | 带标记的折线图 |
三、实现绘图前的数据检查
折线图类型 | 特别准备事项 |
---|---|
单线折线图 | 确保X轴和Y轴数据都是数值型,且长度一致 |
多线折线图 | 每组数据的X轴和Y轴都应为数值型,数据组数相同或对齐 |
带标记的折线图 | 数据需为数值型,并检查标记样式是否对应(如点的形状/颜色) |
四、MATLAB绘制相应折现图
1. 单线折线图绘制
只要有一组数值数据,比如“月份”和“销量”,用基础的 plot()
函数就能搞定。
以下是相关代码实现:
% 读取数据
data = readtable('折线图制作.xlsx', 'sheet', 'Sheet1', 'VariableNamingRule', 'preserve');
x = 1:12;
y = data.('销量');
% 构建白色背景
figure('Color', 'w');
% 绘制折线图
plot(x, y, '-o', ...
'LineWidth', 2, ...
'MarkerSize', 8, ...
'Color', [0.1, 0.4, 0.8], ...
'MarkerEdgeColor', [0 0.2 0.6], ...
'MarkerFaceColor', [0.6 0.8 1]);
% 设置字体和大小
fontSet = {'FontName','宋体','FontSize',11};
% 标题和标签
title('产品月销量趋势', fontSet{:});
xlabel('月份', fontSet{:});
ylabel('销量', fontSet{:});
% X轴刻度与标签
xticks(1:12);
xticklabels(data.('月份'));
xtickangle(45);
% 坐标轴样式
set(gca, ...
'FontName','宋体', ...
'FontSize',11, ...
'LineWidth', 1.2, ...
'Box', 'off', ...
'GridLineStyle', '--', ...
'XGrid', 'on', ...
'YGrid', 'on');
% 图例
legend('月销量', 'Location', 'northwest', fontSet{:});
折线图实现:
2. 多线折线图绘制
如果你有两组或多组数据,例如“产品A”和“产品B”的销量数据,可以使用 plot()
函数绘制多条线条,便于趋势对比。
以下是相关代码实现:
% 读取数据并保护中文列名
data = readtable('多线折线图.xlsx', 'sheet', 'Sheet1', 'VariableNamingRule', 'preserve');
% 提取数据
x = 1:12;
y1 = data.('产品A');
y2 = data.('产品B');
%制作白色背景
figure('Color', 'w');
% 绘制两条线
plot(x, y1, '-o', ...
'LineWidth', 2, ...
'MarkerSize', 7, ...
'Color', [0.1, 0.5, 0.8], ...
'MarkerFaceColor', [0.5, 0.8, 1]);
hold on;
plot(x, y2, '-s', ...
'LineWidth', 2, ...
'MarkerSize', 7, ...
'Color', [0.9, 0.3, 0.3], ...
'MarkerFaceColor', [1, 0.6, 0.6]);
% 设置字体为宋体
fontSet = {'FontName','宋体','FontSize',11};
% 设置标题和标签
title('产品A 与 产品B 月销量对比', fontSet{:});
xlabel('月份', fontSet{:});
ylabel('销量', fontSet{:});
% X轴刻度与标签
xticks(1:12);
xticklabels(data.('月份'));
xtickangle(45);
% 坐标轴样式
set(gca, ...
'FontName','宋体', ...
'FontSize',11, ...
'LineWidth', 1.2, ...
'Box', 'off', ...
'XGrid', 'on', ...
'YGrid', 'on', ...
'GridLineStyle', '--');
% 图例
legend({'产品A', '产品B'}, 'Location', 'northwest', fontSet{:});
折线图实现:
3. 带标记的折线图绘制
如果你希望在每一个数据点上显示出明显的“标记符号”(如圆点、星号、方块),可以通过 plot()
函数的线型参数来设置,便于突出每个数值的位置。
以下是相关代码实现:
% 读取数据并保护中文列名
data = readtable('折线图制作.xlsx', 'sheet', 'Sheet1', 'VariableNamingRule', 'preserve');
% 提取数据
x = 1:12;
y = data.('销量');
% 设置中文字体
fontSet = {'FontName','SimSun','FontSize',11};
% 创建白色背景图
figure('Color', 'w');
% 使用带星号的线型 '-*',设置新配色
plot(x, y, '-*', ...
'LineWidth', 2, ...
'MarkerSize', 8, ...
'Color', [0.3, 0.3, 0.8], ...
'MarkerFaceColor', [0.7, 0.7, 1.0]);
% 设置X轴标签
xticks(1:12);
xticklabels(data.('月份'));
xtickangle(45);
% 标题和标签
title('产品销量走势(含标记)', fontSet{:});
xlabel('月份', fontSet{:});
ylabel('销量', fontSet{:});
% 坐标轴样式
set(gca, ...
'FontName','SimSun', ...
'FontSize',11, ...
'LineWidth', 1.2, ...
'Box', 'off', ...
'XGrid', 'on', ...
'YGrid', 'on', ...
'GridLineStyle', '--');
% 图例
legend('月销量', 'Location', 'northwest', fontSet{:});
折线图实现:
本博客介绍了如何在 MATLAB 中绘制基础与进阶的折线图,包括多条数据线的绘制、标记样式设置、配色优化等关键技巧。通过合理设置参数,你可以快速实现清晰、专业的数据可视化图表。
在下一篇中,我们将深入探索更高阶的折线图绘制,帮助你进一步提升图表表现力与美观度。