2013-03-13 60 views
0

我想用Matplotlib製作3D圖形。出現圖形窗口,但沒有顯示數據。我究竟做錯了什麼?Matplotlib的3D圖形不顯示任何內容

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

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 

x = [0, 10, 20, 40, 100] 
y = [1, 4, 8, 60, 200] 
z = [4, 5, 6, 7, 8] 


ax.plot_surface(x, y, z) 

plt.show() 

回答

1

plot_surface需要2D輸入(doc)。它沒有繪製任何東西,因爲你沒有給它繪製一個有效的表面。

看到這個example

0

X,Y和Z需要是2D陣列

表面圖Axes3D.plot_surface(X,Y,Z,*指定參數時,** kwargs)創建 表面情節。

參數描述

X,Y,Z的數據值作爲二維數組

但是我不理解它背後的邏輯:檢查此SO pos噸獲取更多信息。

+0

邏輯是'plot_surface'和底層函數假定表面中的點的連通性由矩陣中的位置給出。這是'X [i,j]'有NN'X [i + 1,j]','X [i,j + 1]','X [i,j - 1]'和'我 - 1,j]' – tacaswell