1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Matplotlib可视化②——3D绘制散点图曲面图折线图等高线图

Matplotlib可视化②——3D绘制散点图曲面图折线图等高线图

时间:2022-10-21 03:50:01

相关推荐

Matplotlib可视化②——3D绘制散点图曲面图折线图等高线图

公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料

数据可视化系列汇总:

Matplotlib可视化①——二维图表绘制(折线图&直方图&散点图&条形图&箱形图)

Seaborn做图系列①——直方图&箱型图&散点图&回归图&热力图&条形图

Excel数据分析高级技巧①——动态图表制作(offset,vlookup,控件…)

Excel高级图表制作①——电池图/KPI完成情况对比图/重合柱形图

Excel高级图表制作②——帕累托图

Excel高级图表制作③——漏斗图/转化路径图

一、3D折线图

公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport randomimport matplotlib as mplfrom matplotlib import cmfrom mpl_toolkits.mplot3d import axes3dfrom mpl_toolkits.mplot3d.art3d import Poly3DCollection,Line3DCollectionx = np.linspace(1,20,20)y = np.arange(10,30,1)z = np.random.randint(20,50,20) # numpy分别生成三个维度数据fig = plt.figure()ax = Axes3D(fig) # 创建3D图的2种方式,第一种通过Axes3D将图片从二维变成三维,第二种通过在add_subplot(111,projection='3d')将子图坐标修改成三维ax.plot(x,y,z,'bo--') # 参数与二维折现图不同的在于多了一个Z轴的数据plt.show()

二、3D曲面图

公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料

data = np.random.randint(100,500,(3,10,20))x,y,z = data[0],data[1],data[2] # numpy同时生成三维数据fig = plt.figure()ax1 = fig.add_subplot(121,projection='3d')ax1.plot_surface(x,y,z,cmap=plt.cm.winter,rstride=1,cstride=1) # rstride和cstride是隔几行几列取一个数字,代表曲面的稀疏度ax2 = fig.add_subplot(122,projection='3d')ax2.plot_surface(x,y,z,cmap=plt.cm.winter,rstride=10,cstride=10)plt.show()

三、3D散点图

公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料

x= np.linspace(5,20,20)y = np.linspace(20,100,20)x1,y1 = np.meshgrid(x,y)z = np.sin(x1)*y1+np.sin(y1)*x1 # 函数构造数据fig = plt.figure()ax1 = fig.add_subplot(121,projection='3d')ax1.scatter(x1,y1,z,c='y',marker='D')ax2 = fig.add_subplot(122,projection='3d')ax2.scatter(x1[:10],y1[:10],z[:10],cmap=plt.cm.winter,marker='o')ax2.scatter(x1[10:],y1[10:],z[10:],cmap=plt.cm.spring,marker='*')plt.show()

四、等高线图

x = np.arange(-10,10,0.01) #生成步长为0.01的数据y = np.arange(-10,10,0.01)x,y=np.meshgrid(x,y)def func(x,y):return x**2+y**2fig,axes = plt.subplots(2,2)axes[0,0].contour(x,y,func(x,y),20,cmap=plt.cm.winter,alpha=0.8) # 不填充,只是线20是指分成20等份,分太多会看不清axes[0,1].contourf(x,y,func(x,y),20,cmap=plt.cm.hot) # 填充c = axes[1,0].contour(x,y,func(x,y),[8,20],c='k') # [8,20]是只想看这两条线plt.clabel(c,inline=True,fontsize=10,fmt='%.f',colors=['k','y']) # 设置数据标签格式,inline是在线上d = axes[1,1].contourf(x,y,func(x,y),10,cmap=plt.cm.hot)plt.clabel(d,inline=True,fontsizq=10,fmt='%.f')plt.colorbar(d) # 显示数据条plt.xticks(())plt.yticks(()) # 去除坐标轴plt.show()

本人互联网数据分析师,目前已出Excel,SQL,Pandas,Matplotlib,Seaborn,机器学习,统计学,个性推荐,关联算法,工作总结系列。

微信搜索 "数据小斑马" 公众号

1、回复“数据分析"就可以免费领取数据分析升级打怪15本必备教材

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。