Matplotlib绘制雷达图和三维图的示例代码
技术  /  管理员 发布于 7年前   269
1.雷达图
程序示例
'''1.空白极坐标图'''import matplotlib.pyplot as plt plt.polar()plt.show() '''2.绘制一个极坐标点'''import numpy as npimport matplotlib.pyplot as plt# 极坐标(0.25*pi,20)plt.polar(0.25*np.pi, 20, 'ro', lw=2) # 'ro'红色圆点plt.ylim(0,50)plt.show() '''3.绘制多个极坐标点'''import numpy as npimport matplotlib.pyplot as plttheta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])r = [75,60,50,70,50,85,45,70]plt.polar(theta*np.pi, r, 'ro', lw=2) # 'ro'红色圆点plt.ylim(0,100)plt.show() '''4.链接极坐标点'''import numpy as npimport matplotlib.pyplot as plttheta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])r = [75,60,50,70,50,85,45,70]plt.polar(theta*np.pi, r, 'ro-', lw=2)plt.ylim(0,100)plt.show() '''5.闭合链接极坐标点'''import numpy as npimport matplotlib.pyplot as plt# 只需在末尾添加一个和起始点重合的点theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])r = [75,60,50,70,50,85,45,70, 75]plt.polar(theta*np.pi, r, 'ro-', lw=2)plt.ylim(0,100)plt.show() '''6.填充颜色'''import numpy as npimport matplotlib.pyplot as plt# 只需在末尾添加一个和起始点重合的点theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])r = [75,60,50,70,50,85,45,70, 75]plt.polar(theta*np.pi, r, 'ro-', lw=2)plt.fill(theta*np.pi, r, facecolor='r', alpha=0.5) # 填充plt.ylim(0,100)plt.show() '''7.绘制成绩雷达图'''import numpy as npimport matplotlib.pyplot as plt courses = ['C++', 'Python', 'Java', 'C', 'C#', 'Go', 'Matlab']scores = [82,100,90,78,40,66,88] datalength = len(scores)angles = np.linspace(0, 2*np.pi, datalength, endpoint=False) # 均分极坐标 scores.append(scores[0]) # 在末尾添加第一个值,保证曲线闭合angles = np.append(angles, angles[0]) plt.polar(angles, scores, 'rv-', lw=2)plt.thetagrids(angles*180/np.pi, courses, fontproperties='simhei')plt.fill(angles, scores, facecolor='r', alpha=0.4)
2.三维图
程序示例
'''1.绘制三维曲线,并设置图例字号'''import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d import Axes3D # 不可缺少 fig = plt.figure()ax = fig.gca(projection='3d') # 设置图像属性 # 测试数据theta = np.linspace(-4 * np.pi, 4*np.pi, 100)z = np.linspace(-4,4,100) * 0.3r = z**4 + 1x = r*np.sin(theta)y = r*np.cos(theta) ax.plot(x,y,z,'b^-', label='3D 测试曲线')# 设置图例的字体,字号font = fm.FontProperties('simhei')mpl.rcParams['legend.fontsize'] = 10ax.legend(prop=font) plt.show() '''2.绘制三维柱状图,并每个柱子颜色随机'''import numpy as npimport matplotlib.pyplot as pltimport mpl_toolkits.mplot3d x = np.random.randint(0,40,10)y = np.random.randint(0,40,10)z = 80*abs(np.sin(x+y)) ax = plt.subplot(projection='3d') for xx, yy, zz in zip(x,y,z): color = np.random.random(3) ax.bar3d(xx, yy, 0, dx=1, dy=1, dz=zz, color=color) ax.set_xlabel('X轴', fontproperties='simhei')ax.set_ylabel('Y轴', fontproperties='simhei')ax.set_zlabel('Z轴', fontproperties='simhei') plt.show()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号