qmlcanvas繪制3d圖形_透視Matplotlib核心功能和工具包 - 繪制3D圖形

關聯知識

  • Matplotlib
  • Python

線圖

在此,我們將學習如何創建3D線圖。 它類似于2D等效折線圖,并且2D折線圖的許多屬性都結轉到3D。

我們將在相同的軸上繪制凹凸曲線,并從不同角度查看它們,例如平行視圖,頂視圖以及圍繞z軸的旋轉。

導入所需庫:

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D

步驟細節:

  • 準備用于x,y和z軸坐標的數據:
x = np.linspace(-5, 5, 25)y = np.linspace(-5, 5, 25)z = x**2 + y**2z1 = 1 - (x**2 + y**2)
  • 定義一個函數來繪制圖形并設置其屬性:
def plot_graph(axes, xlabel, ylabel, zlabel, title, elevation, rotation): axes.plot3D(x, y, z, label='concave') axes.plot(x, y, z1, label='convex') axes.view_init(elev=elevation, azim=rotation) axes.set_xlabel(xlabel) axes.set_ylabel(ylabel) axes.set_zlabel(zlabel) axes.set_title(title) axes.legend(loc='best')
  • 定義用于3D繪圖的圖形和軸ax1:
fig = plt.figure(figsize=(15,9))ax1 = fig.add_subplot(231, projection='3d')
  • 使用默認仰角和旋轉在ax1上繪制曲線:
plot_graph(ax1, 'X', 'Y', 'Z', 'default view', None, None)
  • 定義第二個軸ax2,并以0度仰角和默認方位角對其進行繪制:
ax2 = fig.add_subplot(232, projection='3d')plot_graph(ax2, 'X', 'Y', 'Z', 'elevation angle = 0,n azimuth angle=None', 0, None)
  • 定義第三個軸ax3,并以90度仰角和默認方位角對其進行繪制:
ax3 = fig.add_subplot(233, projection='3d')plot_graph(ax3, 'X', 'Y', ' ', 'elevation angle = 90,n azimuth angle=None', 90, None)ax3.set_zticks([])
  • 定義第四個軸ax4,并使用默認仰角和-30度方位角進行繪制:
ax4 = fig.add_subplot(234, projection='3d')plot_graph(ax4, 'X', 'Y', 'Z', 'elevation angle = None,n azimuth angle=-30', None, -30)
  • 定義第五個軸ax5,并使用默認仰角和30度方位角對其進行繪制:
ax5 = fig.add_subplot(235, projection='3d')plot_graph(ax5, 'X', 'Y', 'Z', 'elevation angle = None,n azimuth angle=30', None, 30)
  • 調整繪圖之間的空間,并將其顯示在屏幕上:
plt.tight_layout(w_pad=5)plt.show()

分解代碼

  • x = np.linspace(?5, 5, 25)創建一個具有25個點的數組,這些點在-5和5之間等距分布,并且將z和z1定義為x和y的函數
  • def plot_graph(axes, xlabel, ylabel, zlabel, title, elevation, rotation):是繪制具有給定屬性的圖的函數:
  • 軸指定要在其上繪制圖形的軸。
  • xlabel,ylabel和zlabel分別為x,y和z軸指定標簽。
  • 標題指定圖的標題。
  • 仰角指定相對于XY平面的視角:0表示平行于XY平面,90表示俯視圖。
  • 旋轉指定在z軸上旋轉的繪圖的視圖。
  • 高度和旋轉度均以度為單位。
  • axes.plot3D(x, y, z, label='concave')與2D線圖語法相似,除了我們還包括z軸。 您也可以使用axes.plot()代替axes.plot3D(),就像我們對凸曲線所做的那樣。 大多數其他地塊也是如此,但并非所有情況都如此。
  • axes.view_init(elev=elevation, azim=rotation)指定繪圖出現時的視圖。
  • ax1 = fig.add_subplot(231, projection='3d')向圖中添加一個軸,該軸的布局指定為2 x 3網格:
  • projection='3d'指定它是3D軸,并在其上繪制帶有三個尺寸的圖形。 這是2D和3D圖形語法之間的主要區別。
  • 在ax1上,我們以默認仰角和旋轉角度繪制圖表。
  • 在ax2到ax4上,我們繪制了具有不同仰角和旋轉角度的相同圖形,以查看其視圖的差異。

詳情參閱

透視Matplotlib核心功能和工具包 - 繪制3D圖形?viadean.com
35087ae44c533034048f60f82cacd4ba.png

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

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

相關文章

264 解碼之 yuv

博客訪問量日漸減少,于是我決定丟一點技術東東上去,吸引爬蟲光顧一下。先談談 h.264 的編解碼問題。個人建議做視頻、音頻的孩子們,一定要抓住 RFC 和 standard ,然后多看開源編解碼程序。近來抽空看了兩個 decoder ,一…

Java筆記12-函數式接口

主要內容 自定義函數式接口函數式編程常用函數式接口 第一章 函數式接口 概念 函數式接口在java中指的是:有且只有一個抽象方法的接口 函數式接口,即適用于函數式編程場景的接口.而java中共的函數式編程體現就是Lambda,所以函數式接口就是可以適用于lambda使用的接口.只有…

雷軍曬3億估值,意欲“收編”臺灣硬件創業者?

1月13日,在臺灣的CSMIC 2015移動互聯網兩岸年會上,雷軍以獵豹移動董事長的身份做了《給年輕創業者的兩大方向性建議》演講。 演講中雷軍表示,“在未來5到10年,特別適合臺灣年輕創業者做的兩個方向,一個是移動互聯網&am…

網頁“console”輸出圖文信息

http://www.monmonkey.com/javascript/jiben2.html 參考以上鏈接中的轉義字符使用。 http://www.cnblogs.com/Wayou/p/chrome_dev_tool_style_console.html https://segmentfault.com/a/1190000002511877 以上鏈接里有各種 console 輸出 ASCII圖文的實現方法。 ASCII圖文動態效…

記事本安卓軟件代碼設計_用輕量級工具 Notepad3 替代 36 歲的微軟記事本

一不小心,微軟記事本發布 36 年了。雖然微軟記事本自 1985 年 Windows 1.0 以來已包含在所有版本的 Microsoft Windows 中,但它太基礎了,以至于幾乎所有人都要替代它,比如輕量級的 Notepad3,支持代碼高亮/折疊、括號匹…

H.264編碼技術

H.264基本概況隨著HDTV的興起,H.264這個規范頻頻出現在我們眼前,HD-DVD和藍光DVD均計劃采用這一標準進行節目制作。而且自2005年下半年以來,無論是NVIDIA還是ATI都把支持H.264硬件解碼加速作為自己最值得夸耀的視頻技術。H.264到底是何方“神…

Java筆記13-兄弟連在線考試系統

今天內容: 1.兄弟連在線考試系統 1.1 軟件開發的流程 需求分析文檔 > 概要設計文檔 > 詳細設計文檔 > 編碼和測試1.2 編寫目的 (1)復習JavaSE所學的所有內容。 (2)鍛煉基本的編程能力。 1.3 功能分析 考試系統:(1)學員系統a.修改密碼b.開始…

macOS自帶Python2.7刪除之后的悲劇

2019獨角獸企業重金招聘Python工程師標準>>> 起因 今天打開xcode想要開始繼續寫項目的時候悲劇了. Loading a plug-in failed. The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled. 嘗試用終端打開看看報…

EasyUI 表格點擊右鍵添加或刷新 綁定右鍵菜單

例1 在HTML頁面中設置一個隱藏的菜單&#xff08;前提是已經使用封裝的Easyui&#xff09; 代碼&#xff1a; <div id"contextMenu_jygl" class"easyui-menu" style"width: 80px; display: none;"> <div …

python神奇的小海龜_Python筆記_第一篇_面向過程_第一部分_8.畫圖工具(小海龜turtle)...

turtle 是一個簡單的繪圖工具。提供一個小海龜&#xff0c;可以把它理解為一個機器人&#xff0c;只能聽懂有限的命令&#xff0c;且繪圖窗口的原點(0,0)在中間&#xff0c;默認海龜的方向是右側海龜的命令包括三類&#xff1a;運動命令、筆畫控制命令、其他命令。1. 運動命令…

jupyter淺析

一、jupyter 起步:簡介 Jupyter Notebook是一個開源的Web應用程序&#xff0c;允許用戶創建和共享包含代碼、方程式、可視化和文本的文檔。它的用途包括&#xff1a;數據清理和轉換、數值模擬、統計建模、數據可視化、機器學習等等。它具有以下優勢&#xff1a; 可選擇語言&a…

我在全球最大的同性社交平臺那點事

本文作者&#xff1a;夏之冰雪&#xff0c;i春秋簽約作家 《我在百度網盤上看到上萬條車主個人信息,企業、政府高官信息、各種數據庫和無窮無盡的盜版》&#xff0c;一時間&#xff0c;這篇文章就火了&#xff0c;火爆程度另百度猝不及防。 其實呢&#xff0c;這事真不能全怪百…

H.264的CAVLC(編碼.解碼)過程詳解

看264也看到CAVLC來了&#xff0c;把這方面的資料貼在這里&#xff1a; 編碼過程&#xff1a; 假設有一個4*4數據塊 &#xff08;變化&#xff0c;量化后就送入熵編碼&#xff09;{ 0 , 3 , -1 , 0, 0, -1 , 1, 0, 1 , 0 , 0 , 0, 0 , 0 , 0 , 0 } 數據重排列&a…

python進程通信方式有幾種_python全棧開發基礎【第二十一篇】互斥鎖以及進程之間的三種通信方式(IPC)以及生產者個消費者模型...

一、互斥鎖進程之間數據隔離&#xff0c;但是共享一套文件系統&#xff0c;因而可以通過文件來實現進程直接的通信&#xff0c;但問題是必須自己加鎖處理。注意&#xff1a;加鎖的目的是為了保證多個進程修改同一塊數據時&#xff0c;同一時間只能有一個修改&#xff0c;即串行…

Python實現修改圖片尺寸

起步 很多小伙伴從網上找的圖片可能圖片尺寸與自己的需求不符合 今天小編就教大家使用python寫一個簡單腳本程序實現修改圖片的尺寸 環境準備 首先我們需要python環境,它的安裝可以參考:python安裝以及版本檢測 其次我們還需要安裝一個python圖形化的庫PIL PIL的安裝,這里…

數據集

https://zhuanlan.zhihu.com/p/25138563轉載于:https://www.cnblogs.com/zhangbojiangfeng/p/7039725.html

常見的攻擊手段及其防御方式

本文簡單介紹幾種常見的攻擊手段及其防御方式 XSS(跨站腳本攻擊)CSRF&#xff08;跨站請求偽造&#xff09;SQL注入DDOSXSS 概念 全稱是跨站腳本攻擊&#xff08;Cross Site Scripting&#xff09;&#xff0c;指攻擊者在網頁中嵌入惡意腳本程序。案列 比如說我寫了一個博客網站…

使用ffmpeg進行h.264編碼

m_fmt->video_codec CODEC_ID_H264; /* 添加視頻流 */ m_video_st av_new_stream(m_oc, 0); if (!m_video_st) { return 0; } m_videocavcodec_alloc_context(); m_videoc m_video_st->codec; /* 視頻相關參數 */ m_videoc->codec_id m_fmt->video_codec; m_…

關于java的關鍵字 transient

我們都知道一個對象只要實現了Serilizable接口&#xff0c;這個對象就可以被序列化&#xff0c;Java的這種序列化模式為開發者提供了很多便利&#xff0c;我們可以不必關系具體序列化的過程&#xff0c;只要這個類實現了Serilizable接口&#xff0c;這個的所有屬性和方法都會自…

python中文件變化監控-watchdog

起步 在python中文件監控主要有兩個庫&#xff0c;一個是pyinotify&#xff0c;一個是watchdog。pyinotify依賴于Linux平臺的inotify&#xff0c;后者則對不同平臺的的事件都進行了封裝。因為我主要用于Windows平臺&#xff0c;所以下面著重介紹watchdog&#xff08;推薦大家閱…