Python小技术-----三维画图

一、引言

       最近一直在学习Python方面的知识,有幸学习到了数据分析与可视化这一模块,感觉绘制三维图形这一块十分有意思。下面是我最近写的几个小的例子,与大家分享。

二、简介

       首先我们在这一模块需要引入数值计算可视化库matplotlib,这个库主要依赖于numpy模块和tkinter模块,它可以绘制多种样式的图形,包括线图、直方图、饼图、散点图、三维可视化图等,是计算可视化的重要工具。

在终端中输入命令安装matplotlib模块:

pip install matplotlib

三、具体例子展示

1.绘制正弦曲线

plot函数可以绘制给定定义域与值域的函数图像。

import numpy as np
import matplotlib
import pylab as p1
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

x = np.arange(0,2*np.pi,0.01)
y = np.sin(x)
p1.plot(x,y)
p1.xlabel("x")
p1.ylabel("y")
p1.title("sin")
p1.show()

2.三维视图

import numpy as np
import matplotlib
import pylab as p1
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

 
x,y = np.mgrid[-2:2:20j,-2:2:20j]
z = 50 * np.sin(x+y)

ax = plt.subplot(111,projection = "3d")
ax.plot_surface(x,y,z,rstride = 2,cstride = 1,cmap = plt.cm.Blues_r)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_zlabel("z")
plt.show()

效果图: 

import numpy as np
import matplotlib
import pylab as p1
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

rho,theta = np.mgrid[0:1:40j,0:2*np.pi:40j]
z = rho**2
x = rho*np.cos(theta)
y = rho*np.sin(theta)
ax = plt.subplot(111,projection = "3d")
ax.plot_surface(x,y,z)
plt.show()

效果图:

import numpy as np
import matplotlib
import pylab as p1
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

from matplotlib import cm
#import matplotlib.pyplot as plt
#import numpy as np
n_angles=36
n_radii=8
radii=np.linspace(0.125,1,n_radii)
#在指定的间隔内返回均匀间隔的数字。
#numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None),endpoint=True表示包括终止点的数。
angles=np.linspace(0,2*np.pi,n_angles,endpoint=False)
angles=np.repeat(angles[:,np.newaxis],n_radii,axis=1)
#将上一个angle的数组生成一个多维的数组,之后生成重复的n_radii个,沿着x轴复制。
x=np.append(0,(radii*np.cos(angles)).flatten())#降到一维
y=np.append(0,(radii*np.sin(angles)).flatten())
z=np.sin(-x*y)
fig=plt.figure()
ax=fig.gca(projection='3d')
ax.plot_trisurf(x,y,z,cmap=cm.jet,linewidth=0.9)#生成曲面图形
plt.show()

效果图:

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值