用matplotlib及mplot3d绘的图
本帖最后由 Rainyboy 于 2011-10-7 22:10 编辑云图和等高线图使用matplotlib的plt.contour(X,Y,Z,...) 和 plt.imshow(Z,...)函数即可,其中X,Y,Z的维数必须一致。
绘制三维图形需要使用mpl_toolkits.mplot3d库,这个库在matplotlib的文档中并未详细说明,在其网站上有文档:
http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/
按照示例代码,再翻一翻文档,照猫画虎就行了。
比较遗憾的是,似乎只能以这个视角来绘图了,无法旋转视图什么的。
网格图怎么画?前处理软件中常见的那种样子。 网格通过x、y坐标计算即可,
matlab中有自动生成命令 {:{23}:}高手啊,一直在琢磨怎么让三维网格图和投影等高线图同时显示,好帖子! linqus 发表于 2013-7-1 16:36 static/image/common/back.gif
网格通过x、y坐标计算即可,
matlab中有自动生成命令
请问元老说的是griddata函数吗? 筱炜轩 发表于 2013-11-14 01:07 static/image/common/back.gif
高手啊,一直在琢磨怎么让三维网格图和投影等高线图同时显示,好帖子!
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)
ax.set_xlabel('X')
ax.set_xlim(-40, 40)
ax.set_ylabel('Y')
ax.set_ylim(-40, 40)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)
plt.show()
这是一个官方的例子,可以参考一下。plot_surface()函数用来画三维曲面,ax.contour()函数用来在三维空间中绘制二维等高线。
Rainyboy 发表于 2013-11-15 03:19 static/image/common/back.gif
这是一个官方的例子,可以参考一下。plot_surface()函数用来画三维曲面,ax.contour()函数用来在 ...
{:{39}:}太感谢了!
页:
[1]