声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7430|回复: 6

[Python] 用matplotlib及mplot3d绘的图

[复制链接]
发表于 2011-10-7 22:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 Rainyboy 于 2011-10-7 22:10 编辑

云图和等高线图使用matplotlib的plt.contour(X,Y,Z,...) 和 plt.imshow(Z,...)函数即可,其中X,Y,Z的维数必须一致。

image.png
RC_NET_Z.png

绘制三维图形需要使用mpl_toolkits.mplot3d库,这个库在matplotlib的文档中并未详细说明,在其网站上有文档:
http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/


按照示例代码,再翻一翻文档,照猫画虎就行了。
SHUNTED_RC.png

SHUNTED_R.png

RC_NET.png

比较遗憾的是,似乎只能以这个视角来绘图了,无法旋转视图什么的。

回复
分享到:

使用道具 举报

发表于 2013-6-29 00:58 | 显示全部楼层
网格图怎么画?前处理软件中常见的那种样子。
发表于 2013-7-1 23:36 | 显示全部楼层
网格通过x、y坐标计算即可,
matlab中有自动生成命令
发表于 2013-11-14 08:07 | 显示全部楼层
高手啊,一直在琢磨怎么让三维网格图和投影等高线图同时显示,好帖子!
 楼主| 发表于 2013-11-14 19:58 | 显示全部楼层
 楼主| 发表于 2013-11-15 03:19 | 显示全部楼层
筱炜轩 发表于 2013-11-14 01:07
高手啊,一直在琢磨怎么让三维网格图和投影等高线图同时显示,好帖子!


[code=Python width=600px]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()[/code]


这是一个官方的例子,可以参考一下。plot_surface()函数用来画三维曲面,ax.contour()函数用来在三维空间中绘制二维等高线。
figure_1.png

发表于 2013-11-15 07:38 | 显示全部楼层
Rainyboy 发表于 2013-11-15 03:19
这是一个官方的例子,可以参考一下。plot_surface()函数用来画三维曲面,ax.contour()函数用来在 ...

太感谢了!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-28 05:19 , Processed in 0.067245 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表