python matplotlib實(shí)現(xiàn)坐標(biāo)投影的示例代碼
三維坐標(biāo)
【plt】可以將二維圖形嵌入到三維坐標(biāo)系中,方法也很簡單,只需用創(chuàng)建一個子坐標(biāo)框架,并指定其投影方式為3d,并通過zdir參數(shù)指定一個額外的軸即可。
import numpy as np import matplotlib.pyplot as plt xs = np.linspace(0, 1, 100) ys = np.sin(xs * 2 * np.pi) / 2 + 0.5 fig = plt.figure() zs = ['x', 'y', 'z'] for i, z in enumerate(zs, 1): ax = fig.add_subplot(1,3,i, projection='3d') ax.plot(xs, ys, zs=0, zdir=z) ax.set_zlim(0,1) ax.set_xlim(0,1) ax.set_ylim(0,1) plt.show()
很顯然,這是個偽 3 D 3D 3D曲線,但plot函數(shù)是有實(shí)力繪制真正的三維曲線的。但在三維空間中,需要三個坐標(biāo)才能確定一個點(diǎn)的位置,空間中的一條三維曲線,需要三個坐標(biāo)來共同表示
xs = np.linspace(0, 5, 100) ys = np.sin(xs * 2 * np.pi) / 2 + 0.5 zs = np.cos(xs * 2 * np.pi) / 2 + 0.5 ax = plt.subplot(projection='3d') ax.plot(xs, ys, zs) plt.show()
效果如下
極坐標(biāo)
極坐標(biāo)也是一種投影,只需將projection設(shè)為polar即可實(shí)現(xiàn)極坐標(biāo)的繪制。并且在極坐標(biāo)中,plot函數(shù)保留了默認(rèn)自變量的功能,示例如下
r = np.arange(0, 2, 0.01) th = 2 * np.pi * r ax = plt.subplot(121, projection='polar') ax.plot(th, r) ax = plt.subplot(122, projection='polar') ax.plot(r) plt.show()
對于弧度而言,1是一個很大的數(shù),相當(dāng)于三分之一個圓周了,所以在右側(cè)的極坐標(biāo)圖像中,出現(xiàn)了明顯的棱角。
地理坐標(biāo)
projection的含義是投影,除了3D坐標(biāo)和極坐標(biāo)之外,還支持多種地理坐標(biāo),下面就列舉幾個不同的地理坐標(biāo)并繪圖
projs = ['aitoff', 'hammer', 'lambert', 'mollweide'] fig = plt.figure() xs = ys = np.arange(-2,2,0.01) for i, p in enumerate(projs, 1): ax = fig.add_subplot(2,2,i,projection=p) ax.plot(xs, ys) plt.title(p) plt.grid() plt.show()
這四個投影的含義是
aitoff 埃托夫投影,經(jīng)過改進(jìn)的方位投影,采用了橢圓形經(jīng)緯網(wǎng),適用于繪制小比例的世界地圖。
- hammer 哈默投影,一種等積偽圓柱投影。其橫坐標(biāo)是等面積圓柱投影和桑生投影的平均值,縱坐標(biāo)由等面積條件導(dǎo)出,使整個世界置于橢圓內(nèi)。
- lambert 蘭勃特投影,一種等角圓錐投影。設(shè)想用一個正圓錐切于或割于球面,應(yīng)用等角條件將地球面投影到圓錐面上,然后沿一母線展開成平面。
- mollweide 摩爾維特投影,一種以橢圓(軸比為 2:1)形式顯示世界的等積偽圓柱地圖投影。
以上就是python matplotlib實(shí)現(xiàn)坐標(biāo)投影的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于python matplotlib坐標(biāo)投影的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python內(nèi)存管理與泄漏排查實(shí)戰(zhàn)分享
這篇文章主要介紹了Python內(nèi)存管理與泄漏排查實(shí)戰(zhàn),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03對Python中GIL(全局解釋器鎖)的一點(diǎn)理解淺析
首先需要明確的一點(diǎn)是GIL并不是Python的特性,它是在實(shí)現(xiàn)Python解析器(CPython)時所引入的一個概念,下面這篇文章主要給大家介紹了關(guān)于對Python中GIL的一點(diǎn)理解,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05使用pyinstaller打包py文件的實(shí)現(xiàn)步驟
PyInstaller是一個用于將Python腳本打包成獨(dú)立可執(zhí)行文件的工具,本文主要介紹了使用pyinstaller打包py文件,具有一定的參考價值,感興趣的可以了解一下2025-03-03利用pytorch實(shí)現(xiàn)對CIFAR-10數(shù)據(jù)集的分類
今天小編就為大家分享一篇利用pytorch實(shí)現(xiàn)對CIFAR-10數(shù)據(jù)集的分類,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01pandas對齊運(yùn)算的實(shí)現(xiàn)示例
本文主要介紹了pandas對齊運(yùn)算的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10Python利用帶權(quán)重隨機(jī)數(shù)解決抽獎和游戲爆裝備問題
帶權(quán)重隨機(jī)數(shù)即是隨機(jī)數(shù)各個區(qū)間段被抽中的概率根據(jù)權(quán)重而不同,這里我們就來看一下Python利用帶權(quán)重隨機(jī)數(shù)解決抽獎和游戲爆裝備問題的方法,首先還是來進(jìn)一步解釋帶權(quán)隨機(jī)數(shù):2016-06-06