1. 绘制3D曲面图
创新互联是少有的做网站、成都网站制作、营销型企业网站、成都微信小程序、手机APP,开发、制作、设计、买友情链接、推广优化一站式服务网络公司,从2013年成立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
x,y=np.meshgrid(x,y)
r=np.sqrt(x**2, y**2)
z=np.sin(r)
//绘面函数
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=“rainbow”
plt.show()
2.绘制三维的散点图(表述一些数据点分布)
4a.mat数据地址:http blog.csdn.net/eddy_zhang/article/details/50496164
from matplotlib import pyplot as plt
import scipy.io as sio
from mpl_toolkits.mplot3d import Axes3D
matl=‘4a.mat’
data=sio.loadmat(matl)
m=data[‘data’]
x,y,z=m[0],m[1],m[2]
//创建一个绘图工程
ax=plt.subplot(111,project=‘3D’)
//将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:1000], y[:1000], z[:1000],c=‘y’ )//绘制数据点
ax.scatter(x[1000:4000], y[1000:4000], z[1000:4000],c=‘r’ )//绘制数据点
ax.scatter(x[4000:], y[4000:], z[4000:],c=‘g’ )//绘制数据点
ax.set_zlable(‘z’)//坐标轴
ax.set_ylable(‘y’)//坐标轴
ax.set_xlable(‘x’)
plt.show()
import random
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from mpl_toolkits.mplot3d import Axes3D
mpl.rcParams['font.size'] = 10
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for z in [2011, 2012, 2013, 2014]:
xs = xrange(1,13)
ys = 1000 * np.random.rand(12)
color =plt.cm.Set2(random.choice(xrange(plt.cm.Set2.N)))
ax.bar(xs, ys, zs=z, zdir='y', color=color, alpha=0.8)
ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))
ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))
ax.set_xlabel('Month')
ax.set_ylabel('Year')
ax.set_zlabel('Sales Net [usd]')
plt.show()
效果图:
利用ptyhon matplotlib 3D函数可以画出一些3D视觉图
raw_input获取的输入是字符串,不能直接用np.array,需要用split进行切分,然后强制转化成数值类型,才能用plot函数
我把你的代码稍微修改了一下,可能不太漂亮,不过能运行了
x=[1,2,3]
a
=
raw_input('function')
a
=
a.split('
')#依空格对字符串a进行切分,如果是用逗号分隔,则改成a.split(',')
b
=
[]
for
i
in
range(len(a)):#把切分好的字符强制转化成int类型,如果是小数,将int改为float
b.append(int(a[i]))
plt.plot(x,
b,
label='x',
color="green",
linewidth=1)
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X = [1, 1, 2, 2]
Y = [3, 4, 4, 3]
Z = [1, 2, 1, 1]
ax.plot_trisurf(X, Y, Z)
plt.show()