2017-05-16 6 views
0

私は軸を示す3Dサーフェスプロットをしたいが、軸の間にある面は表示しません。私が見つけたのは、ax.set_axis_off()を使って、顔だけでなく軸をも止める方法です。それらの顔だけをオフにする、またはそれらを透明にする機会はありますか?事前に With axes and background Without axes and backgroundMatplotlip:3Dサーフェスプロットはバックグラウンドをオフにしても軸を維持します

感謝を(あなたが密接に見れば最初の画像では、顔を見ることができます)!

+0

またhttp://stackoverflow.com/questions/11448972/changing-the-background-color-of-the-axes-planesを見ます-of-a-matplotlib-3d-plot – ImportanceOfBeingErnest

答えて

1

「ペイントをオフにする」ことはできませんが、色を変更して透明にすることはできます。

ax.xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 

完全なコード:

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

fig = plt.figure() 
ax = fig.gca(projection='3d') 
ax.set_xlabel("x"); ax.set_ylabel("y"); ax.set_zlabel("z") 

x = np.arange(-5, 5, 0.25) 
X, Y = np.meshgrid(x,x) 
Z = np.sin(np.sqrt(X**2 + Y**2)) 

# make the panes transparent 
ax.xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 
ax.yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 
ax.zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 
# make the grid lines transparent 
ax.xaxis._axinfo["grid"]['color'] = (1,1,1,0) 
ax.yaxis._axinfo["grid"]['color'] = (1,1,1,0) 
ax.zaxis._axinfo["grid"]['color'] = (1,1,1,0) 

surf = ax.plot_surface(X, Y, Z, cmap=plt.cm.coolwarm, 
        linewidth=0, antialiased=False) 

fig.colorbar(surf, shrink=0.5, aspect=5) 
plt.show() 

enter image description here

関連する問題