最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Matplotlib繪制3D圖像的示例詳解

 更新時間:2022年04月14日 08:37:07   作者:侯小啾  
這篇文章主要為大家介紹了如何使用python matplotlib繪制繪制出一系列酷炫的3D圖像,例如:3D散點圖,3D曲線圖等,感興趣的可以了解一下

1. 繪制3D柱狀圖

繪制3D柱狀圖使用的是axes3d.bar()方法。

可能跟我們中學學的有一點不同的是,其語法如下:

bar(left, height, zs=0, zdir=‘z’, *args, **kwargs)

其中l(wèi)eft表示指向側邊的軸,zs表示指向我們的方向的軸,height即表示高度的軸。這三者都需要是一維的序列對象。
在調用相關方法的時候,比如設置軸標簽,還有一點需要區(qū)分的是,left對應的是y軸,zs對應的是x軸。(意思就是說,比如使用plt.xticks()方法,操作的是zs;而使用plt.yticks()方法則操作的是left軸。height對應著z軸。)

一段完整的代碼示例如下:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
plt.rcParams['font.sans-serif'] = ['STKAITI']
# 創(chuàng)建畫布
fig = plt.figure()
# 創(chuàng)建3D坐標系
axes3d = Axes3D(fig)
zs = range(5)
left = np.arange(0, 10)
height = np.array([])
for i in range(len(zs)):
    z = zs[i]
    np.random.seed(i)
    height = np.random.randint(0, 30, size=10)
    axes3d.bar(left, height, zs=z, zdir='x',
               color=['red', 'green', 'purple', 'yellow', 'blue', 'black', 'gray', 'orange', 'pink', 'cyan'])
plt.xticks(zs, ['1月份', '2月份', '3月份', '4月份', '5月份'])
plt.yticks(left, ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G'])
plt.xlabel('月份')
plt.ylabel('型號')
plt.show()

圖像效果如下: 

2. 繪制3D曲面圖

示例1

繪制曲面圖使用的是plot_surface()方法,這個方法的參數(shù)相對而言更簡單。且X、Y、Z三者的順序相對較為容易分辨。

通過讀示例代碼,即可快速掌握其用法:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
fig = plt.figure(figsize=(10, 8), facecolor='#cc00ff')
ax = Axes3D(fig)
delta = 0.125
# 生成代表X軸數(shù)據(jù)的列表
x = np.arange(-4.0, 4.0, delta)
# 生成代表Y軸數(shù)據(jù)的列表
y = np.arange(-3.0, 4.0, delta)
# 對x、y數(shù)據(jù)執(zhí)行網(wǎng)格化
X, Y = np.meshgrid(x, y)

Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 計算Z軸數(shù)據(jù)(高度數(shù)據(jù))
Z = (Z1 - Z2) * 2
# 繪制3D圖形
ax.plot_surface(X, Y, Z,
    rstride=1,  # rstride(row)指定行的跨度
    cstride=1,  # cstride(column)指定列的跨度
    cmap=plt.get_cmap('rainbow'))  # 設置顏色映射
plt.xlabel('X軸', fontsize=15)
plt.ylabel('Y軸', fontsize=15)
ax.set_zlabel('Z軸', fontsize=15)
ax.set_title('《曲面圖》', y=1.02, fontsize=25, color='gold')
# 設置Z軸范圍
ax.set_zlim(-2, 2)
plt.show()

示例2

更換一組數(shù)據(jù),呈現(xiàn)的則是另一種藝術效果:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
fig = plt.figure(figsize=(12, 10), facecolor='#cc00ff')
ax = Axes3D(fig)
delta = 0.125
# 生成代表X軸數(shù)據(jù)的列表
x = np.linspace(-2, 2, 10)
# 生成代表Y軸數(shù)據(jù)的列表
y = np.linspace(-2, 2, 10)
# 對x、y數(shù)據(jù)執(zhí)行網(wǎng)格化
X, Y = np.meshgrid(x, y)

# 計算Z軸數(shù)據(jù)(高度數(shù)據(jù))
Z = X**2 - Y**2
# 繪制3D圖形
ax.plot_surface(X, Y, Z,
    rstride=1,  # rstride(row)指定行的跨度
    cstride=1,  # cstride(column)指定列的跨度
    cmap=plt.get_cmap('rainbow'))  # 設置顏色映射
plt.xlabel('X軸', fontsize=15)
plt.ylabel('Y軸', fontsize=15)
ax.set_zlabel('Z軸', fontsize=15)
ax.set_title('《曲面圖》', y=1.02, fontsize=25, color='gold')
plt.show()

3.繪制3D散點圖

在3D曲面圖示例1的基礎上稍作修改。

繪制散點圖使用scatter()方法,將散點顏色設置為綠色,紅色邊沿。

代碼示例如下:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
fig = plt.figure(figsize=(10, 8), facecolor='#cc00ff')
ax = Axes3D(fig)
delta = 0.125
# 生成代表X軸數(shù)據(jù)的列表
x = np.arange(-4.0, 4.0, delta)
# 生成代表Y軸數(shù)據(jù)的列表
y = np.arange(-3.0, 4.0, delta)
# 對x、y數(shù)據(jù)執(zhí)行網(wǎng)格化
X, Y = np.meshgrid(x, y)

Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 計算Z軸數(shù)據(jù)(高度數(shù)據(jù))
Z = (Z1 - Z2) * 2
# 繪制3D圖形
ax.scatter(X, Y, Z,
           c='green',
           edgecolors='red')
plt.xlabel('X軸', fontsize=15)
plt.ylabel('Y軸', fontsize=15)
ax.set_zlabel('Z軸', fontsize=15)
ax.set_title('《散點圖》', y=1.02, fontsize=25, color='gold')
# 設置Z軸范圍
ax.set_zlim(-2, 2)
plt.show()

繪圖效果如下:

4. 繪制3D曲線圖

繪制曲線圖,使用的則是我們最最最熟悉的plot()方法。

其他部分基本不變,數(shù)據(jù)部分生成三組適合我們繪圖的數(shù)據(jù),線條為金色,寬度設定為3.

代碼如下:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
fig = plt.figure(figsize=(10, 8), facecolor='#cc00ff')
ax = Axes3D(fig)
theta = np.linspace(0, 3.14*10, 1000)
r = np.linspace(0, 1, 1000)
x = r * np.cos(theta)
y = r * np.sin(theta)
z = np.linspace(0, 4, 1000)
ax.plot(x, y, z, color='gold', lw=3)
plt.xlabel('X軸', fontsize=15)
plt.ylabel('Y軸', fontsize=15)
ax.set_zlabel('Z軸', fontsize=15)
ax.set_title('《曲線圖》', y=1.02, fontsize=25, color='gold')
plt.show()

圖像效果如下:

以上就是Python+Matplotlib繪制3D圖像的示例詳解的詳細內容,更多關于Python Matplotlib 3D圖像的資料請關注腳本之家其它相關文章!

相關文章

  • Python機器學習庫scikit-learn使用詳解

    Python機器學習庫scikit-learn使用詳解

    scikit-learn是Python中最流行的機器學習庫之一,它提供了各種各樣的機器學習算法和工具,包括分類、回歸、聚類、降維等
    2023-03-03
  • 在FastAPI中改變響應狀態(tài)碼的兩種方法

    在FastAPI中改變響應狀態(tài)碼的兩種方法

    FastAPI,顧名思義,是一個快速、現(xiàn)代、高性能的web框架,用于用Python構建后端api,響應狀態(tài)碼是一個三位數(shù),表示請求的結果,在這篇簡明的基于示例的博文中,我將向你展示在FastAPI中更改響應狀態(tài)代碼的兩種不同方法,需要的朋友可以參考下
    2025-02-02
  • 詳解centos7+django+python3+mysql+阿里云部署項目全流程

    詳解centos7+django+python3+mysql+阿里云部署項目全流程

    這篇文章主要介紹了詳解centos7+django+python3+mysql+阿里云部署項目全流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • pycharm不在cmd中運行卻在python控制臺運行問題解決

    pycharm不在cmd中運行卻在python控制臺運行問題解決

    這篇文章主要介紹了pycharm不在cmd中運行卻在python控制臺運行問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 獨特的python循環(huán)語句

    獨特的python循環(huán)語句

    本文主要給大家介紹的是Python循環(huán)語句與其他編程語言中的循環(huán)語句不同的地方,非常的獨特,有需要的小伙伴可以參考下
    2016-11-11
  • python 調用API接口 獲取和解析 Json數(shù)據(jù)

    python 調用API接口 獲取和解析 Json數(shù)據(jù)

    這篇文章主要介紹了python 如何調用API接口 獲取和解析 Json數(shù)據(jù),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python中使用多線程改進flask案例

    python中使用多線程改進flask案例

    這篇文章主要介紹了使用多線程改進flask案例,線程是指進程內的一個執(zhí)行單元,也是進程內的可調度實體.線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高,更多具體內容,需要的小伙伴可以參考下面文章相關資料,希望對你有所幫助
    2022-03-03
  • 超簡單的scrapy實現(xiàn)ip動態(tài)代理與更換ip的方法實現(xiàn)

    超簡單的scrapy實現(xiàn)ip動態(tài)代理與更換ip的方法實現(xiàn)

    這篇文章主要介紹了超簡單的scrapy實現(xiàn)ip動態(tài)代理與更換ip的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Python?時間操作datetime詳情

    Python?時間操作datetime詳情

    這篇文章主要介紹了?Python?時間操作datetime,datetime?模塊提供處理時間和日期的多種類,簡單方便,下面文章將詳細介紹其內容,需要的朋友可以參考一下
    2021-11-11
  • Python實現(xiàn)將MP4視頻轉化為GIF圖像

    Python實現(xiàn)將MP4視頻轉化為GIF圖像

    與靜態(tài)圖像相比,動態(tài)的?GIF?圖片更能吸引各位讀者的注意力,還可以提供更生動、有趣和引人入勝的內容,本文為大家介紹了Python將MP4視頻轉化為GIF圖像的方法,需要的可以參考下
    2023-06-06

最新評論

页游| 黎平县| 怀来县| 东丽区| 金山区| 禹城市| 邢台县| 墨脱县| 无棣县| 集安市| 德昌县| 金华市| 青铜峡市| 绥棱县| 札达县| 天全县| 中江县| 安庆市| 万山特区| 新干县| 呼图壁县| 铜山县| 新邵县| 育儿| 全椒县| 防城港市| 游戏| 崇礼县| 尉犁县| 石林| 通辽市| 定陶县| 绥中县| 淮阳县| 五河县| 盐池县| 西盟| 会东县| 武义县| 叙永县| 德昌县|