国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【matplotlib基礎(chǔ)】--幾何圖形

這篇具有很好參考價(jià)值的文章主要介紹了【matplotlib基礎(chǔ)】--幾何圖形。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

除了繪制各類分析圖形(比如柱狀圖,折線圖,餅圖等等)以外,matplotlib 也可以在畫布上任意繪制各類幾何圖形。
這對于計(jì)算機(jī)圖形學(xué)、幾何算法和計(jì)算機(jī)輔助設(shè)計(jì)等領(lǐng)域非常重要。

matplitlib 中的 patches 類提供了豐富的幾何對象,
本篇拋磚引玉,介紹其中幾種常用的幾何圖形繪制方法。

其實(shí)matplitlib封裝的各種現(xiàn)成的圖形對象(柱狀圖,折線圖,餅圖等等)本質(zhì)也是基于 patches 來繪制的。

1. 多邊形類

多邊形可以用在地理信息圖表中,用來表示地理區(qū)域的邊界或地理要素的形狀;
也可以用來展示數(shù)據(jù)的分布區(qū)域或邊界,比如用在散點(diǎn)圖中。

幾種常用的多邊形繪制方式如下:

1.1. 矩形

繪制矩形用Rectangle對象。

import matplotlib.pyplot as plt
import matplotlib.patches as mptch

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

r1 = mptch.Rectangle(xy=(0.2, 0.3), 
                     height=0.5,
                     width=0.7,
                     color="lightblue")
r2 = mptch.Rectangle(xy=(0.4, 0.6),
                     height=0.3,
                     width=0.2,
                     angle=60,
                     color="lightgreen")

ax.add_patch(r1)
ax.add_patch(r2)
plt.show()

Rectangle對象的主要參數(shù)

  1. xy:矩形的起始點(diǎn),也就是左下角的點(diǎn)
  2. height:矩形的高
  3. width:矩形的寬,高和寬設(shè)置一樣就是正方形
  4. angle:沿著起始點(diǎn),逆時(shí)針旋轉(zhuǎn)的角度
  5. color:矩形的顏色,默認(rèn)藍(lán)色

代碼運(yùn)行效果
【matplotlib基礎(chǔ)】--幾何圖形

1.2. 任意多邊形

任意多邊形比較簡單,給Polygon對象傳入多邊形的各個(gè)頂點(diǎn)即可。

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

#三角形
p1 = mptch.Polygon(xy=[(0.1, 0.1), (0.4, 0.1), (0.3, 0.6)], 
                   color='lightblue')
#四邊形
p2 = mptch.Polygon(xy=[(0.5, 0.5), (0.9, 0.5),  (0.9, 0.1), (0.6, 0.2)], 
                   color='lightgreen')
ax.add_patch(p1)
ax.add_patch(p2)

plt.show()

Polygon對象的主要參數(shù)

  1. xy:多邊形各個(gè)頂點(diǎn)的列表
  2. color:多邊形的顏色,默認(rèn)藍(lán)色

代碼運(yùn)行效果
【matplotlib基礎(chǔ)】--幾何圖形

1.3. 正多邊形

雖然用Polygon對象也可以繪制正多邊形,但是需要計(jì)算各個(gè)頂點(diǎn)的坐標(biāo)位置,很麻煩。
matplotlib提供了專門繪制正多邊形的對象CirclePolygon。

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

p1 = mptch.CirclePolygon(xy=(0.3, 0.3), 
                         radius=0.2, 
                         resolution=6, 
                         color='lightgreen')
p2 = mptch.CirclePolygon(xy=(0.6, 0.6), 
                         radius=0.2, 
                         resolution=8, 
                         color='lightblue')
ax.add_patch(p1)
ax.add_patch(p2)

plt.show()

CirclePolygon對象的主要參數(shù)

  1. xy:正多邊形的中心點(diǎn)坐標(biāo)
  2. radius:正多邊形的外接圓半徑
  3. resolution:正多邊形的邊數(shù)
  4. color:正多邊形的顏色,默認(rèn)藍(lán)色

代碼運(yùn)行效果
【matplotlib基礎(chǔ)】--幾何圖形

2. 圓形類

圓形類也是使用比較多的形狀。

2.1. 圓和橢圓

繪制圓和橢圓分別用CircleEllipse對象。

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

c = mptch.Circle(xy=(0.5, 0.5), 
                 radius=0.4, 
                 color="lightblue")
e = mptch.Ellipse(xy=(0.5, 0.5), 
                  height=0.3, 
                  width=0.4, 
                  color="lightgreen")

ax.add_patch(c)
ax.add_patch(e)
plt.show()

Circle對象的主要參數(shù)

  1. xy:圓心坐標(biāo)
  2. radius:圓的半徑
  3. color:圓的顏色,默認(rèn)藍(lán)色

Ellipse對象的主要參數(shù)

  1. xy:橢圓心坐標(biāo)
  2. height:橢圓的高度
  3. width:橢圓的寬度
  4. color:橢圓的顏色,默認(rèn)藍(lán)色

**PS. **當(dāng)橢圓的heightwidth設(shè)置一樣時(shí),橢圓就是圓了。

代碼運(yùn)行效果
【matplotlib基礎(chǔ)】--幾何圖形

3. 圓弧和扇形

除了完整的圓,也可以繪制弧形(Arc對象)和扇形(Wedge對象)。

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

#圓弧
a = mptch.Arc(xy=(0.4, 0.7), 
              width=0.5, height=0.5, 
              angle=270, 
              theta1=0, theta2=120, 
              linewidth=10, 
              color="lightblue")

#扇形
w = mptch.Wedge(center=(0.3, 0.5), 
                r=0.2, 
                theta1=30, theta2=330, 
                color="lightgreen")

ax.add_patch(a)
ax.add_patch(w)
plt.show()

Arc對象的主要參數(shù)

  1. xy:圓弧的圓心坐標(biāo)
  2. width:圓弧的寬度
  3. height:圓弧的高度
  4. angle:圓弧朝向的角度,逆時(shí)針旋轉(zhuǎn)
  5. theta1:圓弧開始的角度,逆時(shí)針旋轉(zhuǎn)
  6. theta2:圓弧結(jié)束的角度,逆時(shí)針旋轉(zhuǎn)
  7. linewidth:圓弧的粗細(xì)
  8. color:圓弧的顏色,默認(rèn)藍(lán)色

PS. widthheight相等時(shí),圓弧相當(dāng)于是的一段,不相等時(shí),圓弧相當(dāng)于是橢圓的一段。
圓弧開始的角度其實(shí)就是 angle+theta1,結(jié)束的角度是angle+theta2

Wedge對象的主要參數(shù)

  1. xy:扇形的圓心坐標(biāo)
  2. r:扇形的半徑
  3. theta1:扇形開始的角度,逆時(shí)針旋轉(zhuǎn)
  4. theta2:扇形結(jié)束的角度,逆時(shí)針旋轉(zhuǎn)
  5. color:扇形的顏色,默認(rèn)藍(lán)色

代碼運(yùn)行效果:(本來想畫個(gè)魚鉤釣魚的抽象效果的,:))
【matplotlib基礎(chǔ)】--幾何圖形

4. 箭頭

箭頭也是一種比較常用的圖形,可用來標(biāo)注和指示數(shù)據(jù)的方向或關(guān)聯(lián)性,比如增長或下降趨勢;
還可以用來表示數(shù)據(jù)流向或關(guān)系。

matplotlib中用Arrow對象來繪制箭頭。

fig = plt.figure(figsize=[6, 6])
ax = fig.add_subplot(111)

x, y, dx, dy  = 0.1, 0.2, 0.2, 0.2
a1 = mptch.Arrow(x=x, y=y, 
                 dx=dx, dy=dy, 
                 width=0.2, color="lightblue")
a2 = mptch.Arrow(x=x+dx, y=y+dy, 
                 dx=dx, dy=dy, 
                 width=0.4, color="lightgreen")

ax.add_patch(a1)
ax.add_patch(a2)
plt.show()

Arrow對象的主要參數(shù)

  1. x:箭頭的起點(diǎn)X坐標(biāo)
  2. y:箭頭的起點(diǎn)Y坐標(biāo)
  3. dx:箭頭的終點(diǎn)X坐標(biāo)偏移起點(diǎn)X坐標(biāo)的值
  4. dy:箭頭的終點(diǎn)Y坐標(biāo)偏移起點(diǎn)Y坐標(biāo)的值
  5. width:箭頭的寬度
  6. color:箭頭的顏色,默認(rèn)藍(lán)色

PS. 其實(shí)就是起點(diǎn)坐標(biāo)(x, y)終點(diǎn)坐標(biāo)(x+dx, y+dy)。

代碼運(yùn)行效果
【matplotlib基礎(chǔ)】--幾何圖形

5. 總結(jié)

幾何圖形是matplotlib最基本的能力,復(fù)雜花哨的分析圖表歸根結(jié)底都是這些基本的幾何圖形。

除了本篇介紹的這些,完整的patches可以參考官方文檔:https://matplotlib.org/stable/api/patches_api.html

【matplotlib基礎(chǔ)】--幾何圖形文章來源地址http://www.zghlxwxcb.cn/news/detail-712173.html

到了這里,關(guān)于【matplotlib基礎(chǔ)】--幾何圖形的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)圖形學(xué):二維圖形的幾何變換(算法原理及代碼實(shí)現(xiàn))

    計(jì)算機(jī)圖形學(xué):二維圖形的幾何變換(算法原理及代碼實(shí)現(xiàn))

    對于一個(gè)二維圖形作平移、旋轉(zhuǎn)、放縮變換,可以轉(zhuǎn)換為在二維坐標(biāo)系中圖形的所有點(diǎn)分別可以對應(yīng)到在x,y軸方向分別平移tx,ty(平移)、繞一點(diǎn)旋轉(zhuǎn)固定的角(旋轉(zhuǎn))、在x,y軸方向分別放縮sx,sy倍。 對于變換的原理,只需要將原圖形的點(diǎn)通過極坐標(biāo)或者相加、相乘,再

    2024年02月11日
    瀏覽(94)
  • 圖形幾何學(xué)——圓形:圓弧與曲率

    圖形幾何學(xué)——圓形:圓弧與曲率

    A、B、C分別是參考線的某三個(gè)連續(xù)的離散點(diǎn),abc分別是其對邊。根據(jù)三角形外接圓相關(guān)性質(zhì),通過作三條邊的中垂線的交點(diǎn)可以求得三角形的外接圓心。連接CO并延長交圓周于點(diǎn)D,由于 近似認(rèn)為 ∣ P 1 ? ∣ = ∣ P 2 P 3 ? ∣ = d s |vec{P_1}| = |vec{P_2P_3}| = ds ∣ P 1 ? ? ∣ = ∣

    2024年04月27日
    瀏覽(26)
  • Procedural Mesh: 創(chuàng)建復(fù)雜的3D幾何圖形

    Procedural Mesh 是一個(gè)用于創(chuàng)建復(fù)雜3D幾何圖形的開源庫,由 Morten Nobel 開發(fā)并維護(hù)。它允許開發(fā)者通過程序化的方式生成各種形狀和結(jié)構(gòu),無需手動設(shè)計(jì)每個(gè)頂點(diǎn)和面。 Procedural Mesh 提供了一系列函數(shù)和工具,可以幫助開發(fā)者輕松地生成自定義的3D網(wǎng)格。這些功能包括: 基礎(chǔ)形狀

    2024年03月15日
    瀏覽(39)
  • 幾何引擎 & 約束求解器 & 3D仿真物理引擎 & 圖形引擎

    幾何引擎 & 約束求解器 & 3D仿真物理引擎 & 圖形引擎

    四大技術(shù)圖譜就像四座護(hù)法金剛,形成了深不可測的技術(shù)鴻溝。這對于任何一個(gè)工業(yè)軟件企業(yè),十年發(fā)展的沉淀,那還只是開始。這條路,太漫長了。 Software Vendor Domain 3D-kernel 4MCAD IntelliCAD 4M S.A., Greece CAD, AEC Open CASCADE Technology Adams MSC Software, USA CAE Parasolid ADEM ADEM, Russia-Israel

    2024年02月08日
    瀏覽(47)
  • 計(jì)算機(jī)視覺 圖像形成 幾何圖形和變換 3D到2D投影

    ????????現(xiàn)在我們知道如何表示2D和3D幾何圖元以及如何在空間上轉(zhuǎn)換它們,我們需要指定如何將 3D圖元投影到圖像平面上。 我們可以使用線性3D到2D投影矩陣來做到這一點(diǎn)。最簡單的模型是正交法,它不需要除法就可以得到最終的(不均勻的)結(jié)果。更常用的模型是透視,

    2023年04月08日
    瀏覽(100)
  • CG3-v2.0-圖形幾何變換

    (1) 理解幾何變換基本原理, 掌握平移、旋轉(zhuǎn)、縮放變換的方法; (2) 根據(jù)平移算法原理補(bǔ)全translation、scale、rotation_x、rotation_y和rotation_z函數(shù); (3) 根據(jù)幾何變換基本原理,將main函數(shù)中的translation、scale、rotation_z參數(shù)補(bǔ)充完整。

    2024年02月08日
    瀏覽(37)
  • 圖形編輯器開發(fā):一些會用到的簡單幾何算法

    圖形編輯器開發(fā):一些會用到的簡單幾何算法

    大家好,我是前端西瓜哥。 開發(fā)圖形編輯器,你會經(jīng)常要解決一些算法問題。本文盤點(diǎn)一些我開發(fā)圖形編輯器時(shí)遇到的簡單幾何算法問題。 判斷兩個(gè)矩形是否發(fā)生碰撞(或者說相交),即兩個(gè)矩形有重合的區(qū)域。 常見使用場景: 使用選擇工具 框選 圖形(框選策略除了相交

    2024年02月16日
    瀏覽(23)
  • Qt+opencv 鼠標(biāo)畫線實(shí)現(xiàn)幾何圖形識別并動態(tài)創(chuàng)建

    Qt+opencv 鼠標(biāo)畫線實(shí)現(xiàn)幾何圖形識別并動態(tài)創(chuàng)建

    使用Qt + OpenCV實(shí)現(xiàn),通過鼠標(biāo)畫線繪制幾何圖形,然后通過opencv進(jìn)行圖形輪廓識別,返回圖形頂點(diǎn),然后創(chuàng)建對應(yīng)的幾何圖形添加到場景中。繪制使用QGraphics體系完成。 看效果圖: 本文demo在這里 點(diǎn)擊下載 環(huán)境: Qt5.15.2 + vs2019 64bit 支持圖形:直線、圓、橢圓、矩形、三角形。

    2024年02月10日
    瀏覽(159)
  • 基于EasyX學(xué)習(xí)圖形學(xué)中的三維幾何變換【全】

    基于EasyX學(xué)習(xí)圖形學(xué)中的三維幾何變換【全】

    本文開始學(xué)習(xí)幾何變換中的三維變換,對于各種變換的定義方法基本和二維變換一樣,在此我就不過多贅述了。 三維變換矩陣 由于二維變換矩陣為三階矩陣,所以三維變換矩陣為四階矩陣 以下例子均在此正方體基礎(chǔ)上 坐標(biāo)表示 矩陣表示 變換矩陣 核心代碼 效果展示 坐標(biāo)表

    2024年02月09日
    瀏覽(27)
  • 深度學(xué)習(xí)·理論篇(2023版)·第002篇深度學(xué)習(xí)和計(jì)算機(jī)視覺中的基礎(chǔ)數(shù)學(xué)知識01:線性變換的定義+基于角度的線性變換案例(坐標(biāo)變換)+點(diǎn)積和投影+矩陣乘法的幾何意義+圖形化精講

    ?? 恭喜本博客瀏覽量達(dá)到兩百萬,CSDN內(nèi)容合伙人,CSDN人工智能領(lǐng)域?qū)嵙π滦莮 ?? 本文章為2021版本迭代更新版本,在結(jié)合有效知識的基礎(chǔ)上對文章進(jìn)行合理的增加,使得整個(gè)文章時(shí)刻順應(yīng)時(shí)代需要 ?? 本專欄將通過系統(tǒng)的深度學(xué)習(xí)實(shí)例,從可解釋性的角度對深度學(xué)習(xí)的原理

    2023年04月08日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包