如何將3D散點圖與3D曲面圖結合起來,同時保持曲面圖透明,以便仍可以看到所有點?將散點圖與曲面圖結合
9
A
回答
16
要結合不同類型的地塊在同一圖表中,你應該使用功能
plt.hold(真)。
下面的代碼繪製一個三維曲面圖三維散點圖:
from mpl_toolkits.mplot3d import *
import matplotlib.pyplot as plt
import numpy as np
from random import random, seed
from matplotlib import cm
fig = plt.figure()
ax = fig.gca(projection='3d') # to work in 3d
plt.hold(True)
x_surf=np.arange(0, 1, 0.01) # generate a mesh
y_surf=np.arange(0, 1, 0.01)
x_surf, y_surf = np.meshgrid(x_surf, y_surf)
z_surf = np.sqrt(x_surf+y_surf) # ex. function, which depends on x and y
ax.plot_surface(x_surf, y_surf, z_surf, cmap=cm.hot); # plot a 3d surface plot
n = 100
seed(0) # seed let us to have a reproducible set of random numbers
x=[random() for i in range(n)] # generate n random points
y=[random() for i in range(n)]
z=[random() for i in range(n)]
ax.scatter(x, y, z); # plot a 3d scatter plot
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_zlabel('z label')
plt.show()
結果:
http://s9.postimage.org/ge0wb8kof/3d_scatter_surface_plt.gif
你可以看到3D繪圖這裏其他一些例子:
http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html
我改變了表面情節的顏色米默認的顏色表「熱」,以區分兩個地塊的顏色 - 現在,它看到表面圖覆蓋散點圖,獨立順序的...
編輯:爲了解決這個問題,應該在曲面圖的顏色表中使用透明度;添加代碼: Transparent colormap 和轉產:
ax.plot_surface(x_surf, y_surf, z_surf, cmap=cm.hot); # plot a 3d surface plot
到
ax.plot_surface(x_surf, y_surf, z_surf, cmap=theCM);
我們得到:
http://s16.postimage.org/5qiqn0p5h/3d_scatter_surface_plt_transparent.gif
12
使用siluaty的例子;而不是通過cmap = theCM命令使用透明度,您可以調整alpha值。這可能會讓你想要什麼?
ax.plot_surface(x_surf, y_surf, z_surf, cmap=cm.hot, alpha=0.2)
+0
我想知道是否有像alpha這樣的東西,你的評論很明顯! – user89 2015-04-01 18:06:36
相關問題
- 1. Labview - 如何合併散點圖和曲面三維圖?
- 2. 曲線擬合,以散點圖
- 3. Matlab的散點圖與LOWESS曲線
- 4. 與chart.js的混合圖散點圖
- 5. R,ggplot2:將曲線擬合成散點圖
- 6. 將散點圖轉換成面積圖
- 7. 將極座標直方圖與極座標散點圖結合起來
- 8. 試圖將黃土平滑曲線添加到散點圖
- 9. r通過散點圖擬合邏輯曲線
- 10. matplotlib散點圖的迴歸線和擬合曲線
- 11. 結合彩色散點圖和單獨的線條圖
- 12. 混合面和散點圖在一個單一的3D繪圖
- 13. 錯誤與散點圖
- 14. 散點圖與R中
- 15. 散點圖與std錯誤
- 16. 三維散點圖與matplotlib
- 17. 錯誤與散點圖
- 18. 如何在ggplot2中將曲線添加到散點圖?
- 19. 將直方圖放在散點圖上
- 20. Matplotlib散點圖
- 21. 散點圖2D
- 22. matplotlib散點圖
- 23. matplotlib散點圖
- 24. 在散點圖
- 25. 將點添加到散點圖矩陣
- 26. 將點添加到matlibplot散點圖live
- 27. 最佳擬合散點圖線
- 28. 在R中混合兩個散點圖
- 29. 散點圖「最適合」線的算法
- 30. 混合線和散點圖ggplot
一個解決此是(用手)在散點圖分成兩半的數據(平面和下面的數據的數據段),然後繪製在適當的順序的三件事情。請參閱http://stackoverflow.com/questions/14824893/how-to-draw-diagrams-like-this/14825951#14825951 – tacaswell 2013-03-05 20:04:28
如果您需要'真正'3D渲染,請從enthought調查mayavi。 http://code.enthought.com/projects/mayavi/ – tacaswell 2013-03-05 20:05:25
@tcaswell我注意到,即使改變圖的順序,表面總是出現在頂部,這很奇怪...(zorder也不起作用)這就是我選擇使用透明膠片的原因。 – 2013-03-05 20:45:00