簡體   English   中英

在matplotlib 3d圖中旋轉z軸

[英]rotating the z-axis in matplotlib 3d figure

如何旋轉matplotlib圖形的z軸,使其顯示為水平軸? 我創建了以下3d圖: 在此處輸入圖片說明

我嘗試調整中的值

ax.view_init(),但是無論我使用什么值,我都無法翻轉z軸,以使三個軸的方向看起來像下圖所示: 在此處輸入圖片說明

我考慮過更改所有數據的三個分量,以便使用x軸繪制數據的z分量,但是這對我的許多計算非常不便,更重要的是,我沒有知道如何使用ax.set_aspect在矩形框中保持整個圖形相同的比例(矩形,因為數據的(原始)z分量通常比x和y分量的范圍更大)。

那么如何旋轉z軸(旋轉90度)?

編輯:

只是為了澄清我的問題。 使用答案中使用的示例,我有以下代碼可以生成一個在所有三個軸上都具有相同縮放比例的圖形,即使我調整彈出窗口的大小,該圖形對於三個坐標仍然具有相同的長寬比軸和外觀相同。 這就是我想要的,但是z軸旋轉了90度,因此它看起來是水平的(所需的坐標系看起來像上圖中的EM波所示)。 如果切換三個軸的繪制順序,則會得到水平的z軸(繪制為x軸),但是然后我無法使用ax.set_aspect更改比例。

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
ax.set_xlim(-30,30)
ax.set_ylim(-30,30)
ax.set_zlim(-90,90)
ax.set_aspect(3, 'box-forced')
plt.show()

您可以更改傳遞給繪圖函數的X,Y,Z值的順序嗎?

使用此示例

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

plt.show()

在此處輸入圖片說明

更改輸入順序:

ax.plot_wireframe(X,Z,Y,rstride = 10,cstride = 10)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM