Octave 绘图快速入门指南

目录

[1. 基本的 2D 绘图](#1. 基本的 2D 绘图)

[2. 自定义图形样式](#2. 自定义图形样式)

[3. 绘制散点图](#3. 绘制散点图)

[4. 绘制柱状图](#4. 绘制柱状图)

[5. 绘制直方图](#5. 绘制直方图)

[6. 3D 绘图](#6. 3D 绘图)

[6.6.1 3D 曲面图](#6.6.1 3D 曲面图)

[6.6.2 3D 散点图](#6.6.2 3D 散点图)

[7. 绘制极坐标](#7. 绘制极坐标)

[8. 多子图绘制](#8. 多子图绘制)

总结


Octave 是一个类似于 MATLAB 的开源数学软件,广泛用于数值计算和数据分析。它提供了许多用于绘图和数据可视化的功能,适合快速绘制各种类型的图形。下面是 Octave 绘图 的快速入门指南:

1. 基本的 2D 绘图

最常见的图形类型是二维图形。Octave 提供了简单的 plot 函数来绘制折线图。

绘制简单的折线图

复制代码
x = 0:0.1:10; % 生成从 0 到 10 的数据,步长为 0.1 
y = sin(x); % 计算 x 对应的正弦值 
plot(x, y); % 绘制折线图 
title("Sine Wave",'fontsize',15); % 图形标题 
xlabel("X-axis",'fontsize',15); % X 轴标签 
ylabel("Y-axis",'fontsize',15); % Y 轴标签 grid on; % 开启网格

注意这里 'fontsize' 属性可以控制标题与标签字体的大小。

运行结果:

折线的样视,粗细和颜色都是可以改变的,我们在下面介绍。

**绘制带有多个数据集的图:**你可以在同一个图形中绘制多个数据集。

复制代码
x = 0:0.1:10; 
y1 = sin(x); 
y2 = cos(x); 
plot(x, y1, 'r', x, y2, 'b'); % 'r' 表示红色,'b' 表示蓝色 
legend("sin(x)", "cos(x)",'fontsize',15,'location','southwest'); % 图例 
legend boxoff;
title("Sine and Cosine Waves",'fontsize',15); 
xlabel("X-axis",'fontsize',15); 
ylabel("Y-axis",'fontsize',15); 
grid on;

这里面我们使用了 legend 命令来为不同的折线标注。

运行结果:

注意我们改变了折线的颜色,用以区分不同的数据集。

2. 自定义图形样式

Octave 支持多种样式来定制图形的外观。我们可以更改线型、颜色和标记。常用的样式选项:

复制代码
x = 0:0.1:10; 
y = sin(x); 
plot(x, y, '-ok'); % 'o' 表示圆圈标记,'k' 表示黑色线条 
title("Sine Wave with Markers",'fontsize',15); 
xlabel("X-axis",'fontsize',15); 
ylabel("Y-axis",'fontsize',15); 
grid on;

-:实线

--:虚线

::点线

o:圆形标记

x:十字标记

k:黑色,r:红色,g:绿色,b:蓝色等

运行结果:

用户可以根据自己数据的需要和感觉,选择最合适的样式。

3. 绘制散点图

散点图(scatter plot)常用于显示两个变量之间的关系。

复制代码
x = 0:0.1:10; 
y = sin(x); 
scatter(x, y, 50, 'r', 'filled'); % 50 是点的大小,'r' 是红色,'filled' 填充圆圈 title("Sine Wave Scatter Plot",'fontsize',15); 
xlabel("X-axis",'fontsize',15); 
ylabel("Y-axis",'fontsize',15); 
grid on;

注意 scatter 命令和 plot 的区别。

运行结果:

4. 绘制柱状图

柱状图常用于显示离散的类别数据。

复制代码
categories = {'A', 'B', 'C', 'D'}; 
values = [5, 8, 3, 6]; 
bar(values); % 绘制柱状图 
set(gca, 'xticklabel', categories); % 设置 X 轴标签为类别 
title("Bar Chart Example",'fontsize',15); 
xlabel("Categories",'fontsize',15); 
ylabel("Values",'fontsize',15); 
grid on;

注意这里我们使用了set() 命令将 x 轴的 label 和 tick 做了设置。

运行结果:

5. 绘制直方图

直方图用于展示数据的分布情况。

复制代码
data = randn(1000, 1); % 生成1000个标准正态分布的随机数 
hist(data, 30); % 绘制30个柱的直方图 
title("Histogram Example",'fontsize',15);
xlabel("Value",'fontsize',15); 
ylabel("Frequency",'fontsize',15); 
grid on;

运行结果:

6. 3D 绘图

Octave 还支持 3D 绘图,可以绘制三维数据。

6.6.1 3D 曲面图
复制代码
[x, y] = meshgrid(-5:0.1:5, -5:0.1:5); % 创建网格 
z = sin(sqrt(x.^2 + y.^2)); % 计算 z 值 
surf(x, y, z); % 绘制三维曲面图 
title("3D Surface Plot",'fontsize',15); 
xlabel("X-axis",'fontsize',15); 
ylabel("Y-axis",'fontsize',15); 
zlabel("Z-axis",'fontsize',15);

运行结果:

6.6.2 3D 散点图
复制代码
x = randn(100, 1); 
y = randn(100, 1); 
z = randn(100, 1); 
scatter3(x, y, z); % 绘制 3D 散点图 
title("3D Scatter Plot",'fontsize',15); 
xlabel("X-axis",'fontsize',15); 
ylabel("Y-axis",'fontsize',15); 
zlabel("Z-axis",'fontsize',15);

运行结果:

7. 绘制极坐标图

极坐标图用于在极坐标系中表示数据,适用于展示方向性数据。

复制代码
theta = 0:0.1:2*pi; % 角度从0到2π 
r = sin(2*theta) + cos(2*theta); % 计算半径 
polar(theta, r); % 绘制极坐标图 
title("Polar Plot Example",'fontsize',15);

注意 theta 是弧度不是角度。

运行结果:

个人感觉不常用,但是需要了解一下。

8. 多子图绘制

你可以在一个窗口中绘制多个图形。

复制代码
subplot(2, 1, 1); % 创建2行1列的子图,激活第1个子图 
plot(x, sin(x)); 
title("Sine Wave",'fontsize',15); 
subplot(2, 1, 2); % 激活第2个子图 
plot(x, cos(x)); 
title("Cosine Wave",'fontsize',15);

subplot(2, 1, 1) 两行一列 第一幅图

subplot(2, 1, 2) 两行一列 第二幅图

运行结果:

多个子图在某些情况下非常有用。

总结

通过 Octave 的强大绘图功能,你可以轻松实现 2D 和 3D 图形的可视化,包括折线图、散点图、柱状图、直方图和极坐标图等。Octave 的绘图功能类似 MATLAB,适合数据分析、数学建模和科学计算的可视化需求。掌握这些基础后,你可以更高效地展示数据并得出可视化结论。如果你有更具体的绘图需求或问题,随时可以提出来,我可以在今后的博客中为你提供更详细的教程!

相关推荐
自由鬼15 小时前
数据分析图表类型及其应用场景
信息可视化·数据挖掘·数据分析
坚持就完事了2 天前
平滑技术(数据处理,持续更新...)
信息可视化·数据挖掘·数据分析
darkb1rd2 天前
一站式直播工具:助力内容创作者高效开启直播新时代
信息可视化
java1234_小锋2 天前
一周学会Pandas2之Python数据处理与分析-Pandas2数据绘图与可视化
开发语言·python·信息可视化·pandas
鲸采云SRM采购管理系统2 天前
低代码采购系统搭建:鲸采云+能源行业订单管理自动化案例
大数据·信息可视化·srm·采购管理系统
.生产的驴3 天前
SpringCloud 分布式锁Redisson锁的重入性与看门狗机制 高并发 可重入
java·分布式·后端·spring·spring cloud·信息可视化·tomcat
weixin_307779133 天前
Neo4j 数据可视化与洞察获取:原理、技术与实践指南
信息可视化·架构·数据分析·neo4j·etl
小赖同学啊3 天前
Figma 与 Cursor 深度集成的完整解决方案
信息可视化·figma
小赖同学啊3 天前
Figma 中构建 Master Control Panel (MCP) 的完整设计方案
信息可视化·figma
Leo.yuan3 天前
数据资产是什么?数据资产平台如何发挥作用?
大数据·运维·数据仓库·人工智能·信息可视化