主頁 >  其他 > 使用Matplotlib可視化資料的5個強大技巧

使用Matplotlib可視化資料的5個強大技巧

2020-10-19 22:45:28 其他

作者|Rizky Maulana Nurhidayat
編譯|VK
來源|Towards Datas Science

資料可視化用于以更直接的表示方式顯示資料,并且更易于理解,它可以用柱狀圖、散點圖、折線圖、餅圖等形式形成,許多人仍然使用Matplotlib作為后端模塊來可視化他們的圖形,在這個故事中,我將給你一些技巧,使用Matplotlib創建一個優秀圖表的5個強大技巧,

1. 使用Latex字體

默認情況下,我們可以使用Matplotlib提供的一些不錯的字體,但是,有些符號不夠好,不能由Matplotlib創建,例如,符號phi(φ),如圖1所示,

正如你在y-label中看到的,它仍然是phi(φ)的符號,但是對于某些人來說,它還不足以作為繪圖示簽,為了使它更漂亮,你可以使用Latex字體,如何使用它?答案就在這里,

plt.rcParams['text.usetex'] = True
plt.rcParams['font.size'] = 18

你可以在python代碼的開頭添加上面的代碼,第1行定義繪圖中使用的LaTeX字體,你還需要定義大于默認大小的字體大小,如果你不換,我想它會給你一個小標簽,我選了18,應用上述代碼后的結果如圖2所示,

你需要在符號的開頭和結尾寫上雙美元符號,像這樣($…$)

plt.xlabel('x')
plt.ylabel('$\phi$ (phi)')

如果你有一些錯誤或沒有安裝使用LaTeX字體所需的庫,則需要通過在Jupyter notebook中運行以下代碼來安裝這些庫,

!apt install texlive-fonts-recommended texlive-fonts-extra cm-super dvipng

如果你想通過終端安裝,可以輸入

apt install texlive-fonts-recommended texlive-fonts-extra cm-super dvipng

當然,你可以使用一些不同的字體系列,如serif、sans-serif(上面的示例)等,要更改字體系列,可以使用以下代碼,

plt.rcParams['font.family'] = "serif"

如果你將上面的代碼添加到代碼中,它將給你一個圖,如圖3所示,

你能理解圖3和圖2之間的區別嗎?是的,如果你仔細分析,區別在于字體的尾部,后一個圖形使用serif,而前者使用sans-serif,簡而言之,serif表示尾,sans表示沒有,如果你想了解更多有關字體系列或字體的資訊,我建議你使用此鏈接,

https://en.wikipedia.org/wiki/Typeface

你還可以使用Jupyter themes庫設定字體系列/字體,我已經做了使用它的教程,只需單擊以下鏈接,Jupyter主題也可以改變你的Jupyter主題,例如暗模式主題:https://medium.com/@rizman18/how-can-i-customize-jupyter-notebook-into-dark-mode-7985ce780f38

我們希望插入復雜文本,如圖4的標題所示,

如果你想創建圖4,可以使用這個完整的代碼

# 匯入庫
import numpy as np
import matplotlib.pyplot as plt

# 調整matplotlib引數
plt.rcParams.update(plt.rcParamsDefault)
plt.rcParams['text.usetex'] = True
plt.rcParams['font.size'] = 18
plt.rcParams['font.family'] = "serif"

# 創建模擬資料
r = 15
theta = 5
rw = 12
gamma = 0.1

err = np.arange(0., r, .1)
z = np.where(err < rw, 0, gamma * (err-rw)**2 * np.sin(np.deg2rad(theta)))
    
# 可視化資料
plt.scatter(err, z, s = 10)
plt.title(r'$\Sigma(x) = \gamma x^2 \sin(\theta)$', pad = 20)
plt.xlabel('x')
plt.ylabel('$\phi$')

# 保存圖表
plt.savefig('latex.png', dpi = 300, pad_inches = .1, bbox_inches = 'tight')

2.創建縮放效果

在這個技巧中,我將給你一個生成繪圖的代碼,如圖5所示,

首先,你需要了解plt.axes()和plt.figure() 你可以在下面的鏈接中查看它,代碼plt.figure() 覆寫單個容器中的所有物件,包括軸、圖形、文本和標簽,代碼plt.axes()只包含特定的部分,我想,圖6可以給你一個簡單的理解,

黑盒子使用plt.figure(),紅色和藍色的盒子使用plt.axes(). 在圖6中,有兩個軸,紅色和藍色,你可以查看此鏈接以獲取基本參考:https://medium.com/datadriveninvestor/python-data-visualization-with-matplotlib-for-absolute-beginner-python-part-ii-65818b4d96ce

理解之后,你可以分析如何創建圖5,是的,簡單地說,圖5中有兩個軸,第一個軸是一個大的繪圖,放大版本從580到650,第二個是縮小版本,下面是創建圖5的代碼,

# 創建主容器
fig = plt.figure()

# 設定隨機種子
np.random.seed(100)

# 創建模擬資料
x = np.random.normal(400, 50, 10_000)
y = np.random.normal(300, 50, 10_000)
c = np.random.rand(10_000)

# 創建放大圖
ax = plt.scatter(x, y, s = 5, c = c)
plt.xlim(400, 500)
plt.ylim(350, 400)
plt.xlabel('x', labelpad = 15)
plt.ylabel('y', labelpad = 15)

# 創建放大圖
ax_new = fig.add_axes([0.6, 0.6, 0.2, 0.2]) # 放大圖的位置與放大圖的比例比較
plt.scatter(x, y, s = 1, c = c)

# 保存圖形,留好邊距
plt.savefig('zoom.png', dpi = 300, bbox_inches = 'tight', pad_inches = .1)

如果你需要代碼的解釋,可以訪問此鏈接:https://medium.com/datadriveninvestor/data-visualization-with-matplotlib-for-absolute-beginner-part-i-655275855ec8

我還提供了另一個版本的縮放效果,你可以使用Matplotlib,如圖7所示,

要創建圖7,你需要在Matplotlib中使用add_subblot或其他語法(subblot)創建三個軸,為了更容易使用,我在這里加上,要創建它們,可以使用以下代碼,

fig = plt.figure(figsize=(6, 5))
plt.subplots_adjust(bottom = 0., left = 0, top = 1., right = 1)

# 創建第一個軸,左上角的圖用綠色的圖
sub1 = fig.add_subplot(2,2,1) # 兩行兩列,第一單元格

# 創建第二個軸,即左上角的橙色軸
sub2 = fig.add_subplot(2,2,2) # 兩行兩列,第二個單元格

# 創建第三個軸,第三和第四個單元格的組合
sub3 = fig.add_subplot(2,2,(3,4)) # 兩行兩列,合并第三和第四單元格

代碼將生成一個圖,如圖8所示,它告訴我們它將生成2行2列,軸sub1(2,2,1)是子圖(第一行,第一列)中的第一個軸,順序從左上側到右開始,軸sub2(2,2,2)被放置在第一行第二列中,軸sub3(2,2,(3,4)),是第二行第一列和第二行第二列之間的合并軸,

當然,我們需要定義一個模擬資料,以便在繪圖中可視化,在這里,我定義了線性函式和正弦函式的簡單組合,如下面的代碼所示,

# 使用lambda定義函式
stock = lambda A, amp, angle, phase: A * angle + amp * np.sin(angle + phase)

# 定義引數
theta = np.linspace(0., 2 * np.pi, 250) # x軸
np.random.seed(100)
noise = 0.2 * np.random.random(250)
y = stock(.1, .2, theta, 1.2) + noise # y軸

如果你將代碼應用到前面的代碼中,你將得到一個圖,如圖9所示,

下一步是限制第一個和第二個軸(sub1和sub2)的x軸和y軸,為sub3中的兩個軸創建阻塞區域,并創建代表縮放效果的ConnectionPatch,可以使用以下完整的代碼來完成(記住,為了簡單起見,我沒有使用回圈),

# 使用lambda定義函式
stock = lambda A, amp, angle, phase: A * angle + amp * np.sin(angle + phase)

# 定義引數
theta = np.linspace(0., 2 * np.pi, 250) # x軸
np.random.seed(100)
noise = 0.2 * np.random.random(250)
y = stock(.1, .2, theta, 1.2) + noise # y軸

# 創建大小為6x5的主容器
fig = plt.figure(figsize=(6, 5))
plt.subplots_adjust(bottom = 0., left = 0, top = 1., right = 1)

# 創建第一個軸,左上角的圖用綠色的圖
sub1 = fig.add_subplot(2,2,1) # 兩行兩列,第一單元格
sub1.plot(theta, y, color = 'green')
sub1.set_xlim(1, 2)
sub1.set_ylim(0.2, .5)
sub1.set_ylabel('y', labelpad = 15)

# 創建第二個軸,即左上角的橙色軸
sub2 = fig.add_subplot(2,2,2) # 兩行兩列,第二個單元格
sub2.plot(theta, y, color = 'orange')
sub2.set_xlim(5, 6)
sub2.set_ylim(.4, 1)

# 創建第三個軸,第三和第四個單元格的組合
sub3 = fig.add_subplot(2,2,(3,4)) # 兩行兩列,合并第三和第四單元格
sub3.plot(theta, y, color = 'darkorchid', alpha = .7)
sub3.set_xlim(0, 6.5)
sub3.set_ylim(0, 1)
sub3.set_xlabel(r'$\theta$ (rad)', labelpad = 15)
sub3.set_ylabel('y', labelpad = 15)

# 在第三個軸中創建阻塞區域
sub3.fill_between((1,2), 0, 1, facecolor='green', alpha=0.2) # 第一個軸的阻塞區域
sub3.fill_between((5,6), 0, 1, facecolor='orange', alpha=0.2) # 第二軸的阻塞區域

# 在左側創建第一個軸的ConnectionPatch
con1 = ConnectionPatch(xyA=(1, .2), coordsA=sub1.transData, 
                       xyB=(1, .3), coordsB=sub3.transData, color = 'green')
# 添加到左側
fig.add_artist(con1)

# 在右側創建第一個軸的ConnectionPatch
con2 = ConnectionPatch(xyA=(2, .2), coordsA=sub1.transData, 
                       xyB=(2, .3), coordsB=sub3.transData, color = 'green')
# 添加到右側
fig.add_artist(con2)

# 在左側創建第二個軸的ConnectionPatch
con3 = ConnectionPatch(xyA=(5, .4), coordsA=sub2.transData, 
                       xyB=(5, .5), coordsB=sub3.transData, color = 'orange')
# 添加到左側
fig.add_artist(con3)

# 在右側創建第二個軸的ConnectionPatch
con4 = ConnectionPatch(xyA=(6, .4), coordsA=sub2.transData, 
                       xyB=(6, .9), coordsB=sub3.transData, color = 'orange')
# 添加到右側
fig.add_artist(con4)

# 保存圖形,留好邊距
plt.savefig('zoom_effect_2.png', dpi = 300, bbox_inches = 'tight', pad_inches = .1)

代碼將為你提供一個出色的縮放效果圖,如圖7所示,

3.創建圖例

你的圖中是否有許多圖例要顯示?如果是,則需要將它們放置在主軸之外,

要將圖例放置在主容器之外,需要使用此代碼調整位置

plt.legend(bbox_to_anchor=(1.05, 1.04)) # 圖例的位置

值1.05和1.04位于朝向主容器的x和y軸坐標中,你可以改變它,現在,把上面的代碼應用到我們的代碼中,

# 使用lambda創建wave函式
wave = lambda amp, angle, phase: amp * np.sin(angle + phase)

# 設定引數值
theta = np.linspace(0., 2 * np.pi, 100)
amp = np.linspace(0, .5, 5)
phase = np.linspace(0, .5, 5)

# 創建主容器及其標題
plt.figure()
plt.title(r'Wave Function $y = \gamma \sin(\theta + \phi_0) $', pad = 15)

# 為每個放大器和階段創建繪圖
for i in range(len(amp)):
    lgd1 = str(amp[i])
    lgd2 = str(phase[i])
    plt.plot(theta, wave(amp[i], theta, phase[i]), label = (r'$\gamma = $'+lgd1+', $\phi = $' +lgd2))
    
plt.xlabel(r'$\theta$ (rad)', labelpad = 15)
plt.ylabel('y', labelpad = 15)

# 調整圖例
plt.legend(bbox_to_anchor=(1.05, 1.04))

# 保存圖形,留好邊距
plt.savefig('outbox_legend.png', dpi = 300, bbox_inches = 'tight', pad_inches = .1)

運行代碼后,它將給出一個圖,如圖11所示,

如果要使圖例框更漂亮,可以使用以下代碼添加陰影效果,它將顯示一個圖,如圖12所示,

plt.legend(bbox_to_anchor=(1.05, 1.04), shadow=True)

4.創建連續誤差圖

在過去的十年里,資料可視化的風格被轉移到一個干凈的繪圖主題上,通過閱讀國際期刊或網頁上的一些新論文,我們可以看到這種轉變,最流行的方法之一是用連續的誤差可視化資料,而不是使用誤差條,你可以在圖13中看到它,

圖13是通過使用fill_between生成的,在fill_between語法中,你需要定義上限和下限,如圖14所示,

要應用它,可以使用以下代碼,

plt.fill_between(x, upper_limit, lower_limit)

引數上限和下限可以互換,這是完整的代碼,

N = 9
x = np.linspace(0, 6*np.pi, N)

mean_stock = (stock(.1, .2, x, 1.2))
np.random.seed(100)
upper_stock = mean_stock + np.random.randint(N) * 0.02
lower_stock = mean_stock - np.random.randint(N) * 0.015

plt.plot(x, mean_stock, color = 'darkorchid', label = r'$y = \gamma \sin(\theta + \phi_0)$')

plt.fill_between(x, upper_stock, lower_stock, alpha = .1, color = 'darkorchid')
plt.grid(alpha = .2)

plt.xlabel(r'$\theta$ (rad)', labelpad = 15)
plt.ylabel('y', labelpad = 15)
plt.legend()
plt.savefig('fill_between.png', dpi = 300, bbox_inches = 'tight', pad_inches = .1)

5.調整邊距

如果你分析上面的每一行代碼,plt.savefig()后面會是一個復雜的引數:bbox_inches和pad_inches,當你在撰寫一篇期刊或文章時,它們會為你提供邊距,如果不包括它們,則保存后,繪圖的邊距將更大,圖15展示了有bbox_inches和pad_inches以及沒有它們的不同繪圖,

我想你看不出圖15中兩個圖之間的區別,我將嘗試用不同的背景色來顯示它,如圖16所示,

同樣,當你在一篇論文或一篇文章中插入你的圖表時,這個技巧會幫助你,你不需要裁剪它來節省空間,

結論

Matplotlib是一個多平臺庫,可以在許多作業系統使用,它是將資料可視化的老庫之一,但它仍然很強大,因為開發人員總是根據資料可視化的趨勢進行一些更新,上面提到的一些技巧就是更新的例子,

原文鏈接:https://towardsdatascience.com/5-powerful-tricks-to-visualize-your-data-with-matplotlib-16bc33747e05

歡迎關注磐創AI博客站:
http://panchuang.net/

sklearn機器學習中文官方檔案:
http://sklearn123.com/

歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/180928.html

標籤:其他

上一篇:情感分析教程

下一篇:2020第十一屆藍橋杯第二場省賽C++B組,總結

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more