Octave 繪圖快速入門指南

目錄

1. 基本的 2D 繪圖

2. 自定義圖形樣式

3. 繪制散點圖

4. 繪制柱狀圖

5. 繪制直方圖

6. 3D 繪圖

6.6.1 3D 曲面圖

6.6.2 3D 散點圖

7. 繪制極坐標

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,適合數據分析、數學建模和科學計算的可視化需求。掌握這些基礎后,你可以更高效地展示數據并得出可視化結論。如果你有更具體的繪圖需求或問題,隨時可以提出來,我可以在今后的博客中為你提供更詳細的教程!

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/bicheng/80530.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80530.shtml
    英文地址,請注明出處:http://en.pswp.cn/bicheng/80530.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    RabbitMQ--基礎篇

    RabbitMQ 簡介:RabbitMQ 是一種開源的消息隊列中間件,你可以把它想象成一個高效的“郵局”。它專門負責在不同應用程序之間傳遞消息,讓系統各部分能松耦合地協作 優勢: 異步處理:比如用戶注冊后,主程序將發…

    【MySQL】事務(重點)

    目錄 一、什么是事務: 二、事務的前置知識了解 引擎是否支持事務 事務的提交方式 事務操作的前置準備: 三、事務回滾: 四、事務崩潰: 原子性: 持久性: 五、自動提交和手動提交: 六、…

    C++STL——stack,queue

    stack與queue 前言容器適配器deque 前言 本篇主要講解stack與queue的底層,但并不會進行實現,stack的接口 queue的接口 ,關于stack與queue的接口在這里不做講解,因為通過前面的對STL的學習,這些接口都是大同小異的。 …

    STM32智能手表:基于FreeRTOS

    引言 隨著物聯網和可穿戴設備的快速發展,智能手表作為典型代表,集成了傳感器數據采集、實時顯示、無線通信等多項功能。本文將深入剖析一個基于STM32和FreeRTOS的智能手表項目,從硬件架構到軟件設計,逐步講解如何構建一個完整的嵌…

    leetcode504.七進制數

    標簽:進制轉換 機試真題 給定一個整數 num,將其轉化為 7 進制,并以字符串形式輸出。 示例 1: 輸入: num 100 輸出: "202" 示例 2: 輸入: num -7 輸出: "-10" 思路:求n進制就是循環取余數,…

    中國古代史2

    夏朝(公元前2070-公元前1600年) 1.禹建立了我國歷史上第一個奴隸制國家–夏朝,定都陽城。禹傳啟,世襲制代替禪讓制。 2.夏代都城:二里頭遺址位于今河南洛陽偃師二里頭村。發現了大型綠松石龍形器,被命名為…

    死鎖的形成

    死鎖的形成 背景學習資源死鎖的本質 背景 面試可能會被問到. 學習資源 一個案例: https://www.bilibili.com/video/BV1pz421Y7kM 死鎖的本質 互相持有對方的資源. 存在資源競爭都沒有釋放. 可能出現死鎖. insert into demo_user (no, name) values (6, ‘test1’) on dupl…

    MapReduce架構-打包運行

    (一)maven打包 MapReduce是一個分布式運算程序的編程框架,是用戶開發“基于Hadoop的數據分析應用”的核心框架。 MapReduce核心功能是將用戶編寫的業務邏輯代碼和自帶默認組件整合成一個完整的分布式運算程序(例如:jar…

    C++發起Https連接請求

    需要下載安裝openssl //stdafx.h #pragma once #include<iostream> #include <openssl/ssl.h> #include <openssl/err.h> #include <iostream> #include <string>#pragma comment(lib, "libssl.lib") #pragma comment(lib, "lib…

    ADI ADRV902x的射頻模擬信號輸入輸出端口的巴倫匹配

    根據規格書可知ADRV902x系列的&#xff1a; 【1】輸入阻抗是100Ω差分&#xff0c;包括RX端口和ORX端口。 【2】輸出阻抗是50Ω差分&#xff0c;包括TX端口。 而射頻系統通常采用50Ω的單端走線&#xff0c;所以需要通過正確規格的巴倫完成差分轉單端/單端轉差分的處理。 巴…

    【計算機視覺】OpenCV實戰項目:Athlete-Pose-Detection 運動員姿態檢測系統:基于OpenCV的實時運動分析技術

    運動員姿態檢測系統&#xff1a;基于OpenCV的實時運動分析技術 1. 項目概述1.1 技術背景1.2 項目特點 2. 技術架構與算法原理2.1 系統架構2.2 核心算法2.3 模型選擇 3. 項目部署與運行指南3.1 環境準備硬件要求軟件依賴 3.2 項目配置3.3 運行項目基本運行模式高級參數 4. 常見問…

    linux perf top分析系統性能

    1,看到內核宏是否支持perf功能 perf top -g 查看linux 內核宏定義 CONFIG_PERF_EVENTS=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_FRAME_POINTER=y # 確保幀指針支持以捕獲完整堆棧 2,使用perf top -g 報錯 Access to performance monitoring and observability operations is l…

    gin + es 實踐 08

    自動擴縮容 本文檔詳細介紹如何在Kubernetes環境中實現Go-ES應用的自動擴縮容&#xff0c;包括水平Pod自動擴縮容(HPA)、垂直Pod自動擴縮容(VPA)和集群自動擴縮容。 1. 自動擴縮容概述 自動擴縮容是指根據負載變化自動調整計算資源的過程&#xff0c;主要目標是&#xff1a;…

    【比賽真題解析】混合可樂

    這次給大家分享一道比賽題:混合可樂。 洛谷鏈接:U561549 混合可樂 【題目描述】 Jimmy 最近沉迷于可樂中無法自拔。 為了調配出他心目中最完美的可樂,Jimmy買來了三瓶不同品牌的可樂,然后立馬喝掉了一些(他實在是忍不住了),所以 第一瓶可口可樂最大容量為 a 升,剩余 …

    AI Coding的發展之路:從概念到改變世界的旅程

    AI Coding的發展之路:從概念到改變世界的旅程 引言:當代碼開始自己寫代碼 還記得第一次接觸編程時的手足無措嗎?那些復雜的語法規則、難以捉摸的邏輯錯誤,讓多少人在深夜對著屏幕抓狂。而今天,一個全新的時代正在來臨——AI開始幫我們寫代碼了。這不是科幻電影,而是正在…

    基于DQN的自動駕駛小車繞圈任務

    1.任務介紹 任務來源: DQN: Deep Q Learning &#xff5c;自動駕駛入門&#xff08;&#xff1f;&#xff09; &#xff5c;算法與實現 任務原始代碼: self-driving car 最終效果&#xff1a; 以下所有內容&#xff0c;都是對上面DQN代碼的改進&#…

    Spring 必會之微服務篇(2)

    經過上一篇文章的介紹,應該對微服務有了基本的認識,以及為什么要用微服務和微服務要面臨的挑戰和對應的解決問題,這一期繼續聊聊關于微服務的相關知識。 服務拆分 為什么拆 對于大多數的小型項目來說,一般是先采用單體架構,但是隨著后面的用戶規模變大,業務越來越復雜…

    word換行符和段落標記

    換行符&#xff1a;只換行不分段 作用&#xff1a;我們需要對它進行分段&#xff0c;但它是一個信息群組&#xff0c;我希望它們有同樣的段落格式&#xff01; 快捷鍵&#xff1a;shiftenter 段落標記&#xff1a;分段 快捷鍵&#xff1a;enter 修改字體格式或段落格式 …

    JSON|cJSON 介紹以及具體項目編寫

    一、JSON介紹 JSON&#xff08;JavaScript Object Notation 即JavaScript對象表示法&#xff09;是一種輕量級的數據交換格式。采用完全獨立于編程語言的文本格式來存儲和表示數據。 JSON是一種數據交換格式.JSON獨立于編程語言(你不必學習JavaScript).JSON表達數據的方式對通…

    【LLaMA-Factory】使用LoRa微調訓練DeepSeek-R1-Distill-Qwen-7B

    【LLaMA-Factory】使用LoRa微調訓練DeepSeek-R1-Distill-Qwen-7B 本地環境說明禁用開源驅動nouveau安裝nvidia-smi安裝Git環境安裝Anaconda(conda)環境下載DeepSeek-R1-Distill-Qwen-7B模型安裝LLaMA-Factory下載LLaMA-Factory安裝LLaMA-Factory依賴修改環境變量安裝deepspeedA…