系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 脚本中心 > python > 详细页面

Matplotlib绘制雷达图和三维图的示例代码

时间:2020-01-07来源:系统城作者:电脑系统城

1.雷达图

程序示例


 
  1. '''1.空白极坐标图'''
  2. import matplotlib.pyplot as plt
  3.  
  4. plt.polar()
  5. plt.show()
  6.  
  7. '''2.绘制一个极坐标点'''
  8. import numpy as np
  9. import matplotlib.pyplot as plt
  10. # 极坐标(0.25*pi,20)
  11. plt.polar(0.25*np.pi, 20, 'ro', lw=2) # 'ro'红色圆点
  12. plt.ylim(0,50)
  13. plt.show()
  14.  
  15. '''3.绘制多个极坐标点'''
  16. import numpy as np
  17. import matplotlib.pyplot as plt
  18. theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])
  19. r = [75,60,50,70,50,85,45,70]
  20. plt.polar(theta*np.pi, r, 'ro', lw=2) # 'ro'红色圆点
  21. plt.ylim(0,100)
  22. plt.show()
  23.  
  24. '''4.链接极坐标点'''
  25. import numpy as np
  26. import matplotlib.pyplot as plt
  27. theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])
  28. r = [75,60,50,70,50,85,45,70]
  29. plt.polar(theta*np.pi, r, 'ro-', lw=2)
  30. plt.ylim(0,100)
  31. plt.show()
  32.  
  33. '''5.闭合链接极坐标点'''
  34. import numpy as np
  35. import matplotlib.pyplot as plt
  36. # 只需在末尾添加一个和起始点重合的点
  37. theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])
  38. r = [75,60,50,70,50,85,45,70, 75]
  39. plt.polar(theta*np.pi, r, 'ro-', lw=2)
  40. plt.ylim(0,100)
  41. plt.show()
  42.  
  43. '''6.填充颜色'''
  44. import numpy as np
  45. import matplotlib.pyplot as plt
  46. # 只需在末尾添加一个和起始点重合的点
  47. theta = np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2,0.25])
  48. r = [75,60,50,70,50,85,45,70, 75]
  49. plt.polar(theta*np.pi, r, 'ro-', lw=2)
  50. plt.fill(theta*np.pi, r, facecolor='r', alpha=0.5) # 填充
  51. plt.ylim(0,100)
  52. plt.show()
  53.  
  54. '''7.绘制成绩雷达图'''
  55. import numpy as np
  56. import matplotlib.pyplot as plt
  57.  
  58. courses = ['C++', 'Python', 'Java', 'C', 'C#', 'Go', 'Matlab']
  59. scores = [82,100,90,78,40,66,88]
  60.  
  61. datalength = len(scores)
  62. angles = np.linspace(0, 2*np.pi, datalength, endpoint=False) # 均分极坐标
  63.  
  64. scores.append(scores[0]) # 在末尾添加第一个值,保证曲线闭合
  65. angles = np.append(angles, angles[0])
  66.  
  67. plt.polar(angles, scores, 'rv-', lw=2)
  68. plt.thetagrids(angles*180/np.pi, courses, fontproperties='simhei')
  69. plt.fill(angles, scores, facecolor='r', alpha=0.4)

 

2.三维图

程序示例


 
  1. '''1.绘制三维曲线,并设置图例字号'''
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. import matplotlib as mpl
  5. import matplotlib.font_manager as fm
  6. from mpl_toolkits.mplot3d import Axes3D # 不可缺少
  7.  
  8. fig = plt.figure()
  9. ax = fig.gca(projection='3d') # 设置图像属性
  10.  
  11. # 测试数据
  12. theta = np.linspace(-4 * np.pi, 4*np.pi, 100)
  13. z = np.linspace(-4,4,100) * 0.3
  14. r = z**4 + 1
  15. x = r*np.sin(theta)
  16. y = r*np.cos(theta)
  17.  
  18. ax.plot(x,y,z,'b^-', label='3D 测试曲线')
  19. # 设置图例的字体,字号
  20. font = fm.FontProperties('simhei')
  21. mpl.rcParams['legend.fontsize'] = 10
  22. ax.legend(prop=font)
  23.  
  24. plt.show()
  25.  
  26. '''2.绘制三维柱状图,并每个柱子颜色随机'''
  27. import numpy as np
  28. import matplotlib.pyplot as plt
  29. import mpl_toolkits.mplot3d
  30.  
  31. x = np.random.randint(0,40,10)
  32. y = np.random.randint(0,40,10)
  33. z = 80*abs(np.sin(x+y))
  34.  
  35. ax = plt.subplot(projection='3d')
  36.  
  37. for xx, yy, zz in zip(x,y,z):
  38. color = np.random.random(3)
  39. ax.bar3d(xx, yy, 0, dx=1, dy=1, dz=zz, color=color)
  40.  
  41. ax.set_xlabel('X轴', fontproperties='simhei')
  42. ax.set_ylabel('Y轴', fontproperties='simhei')
  43. ax.set_zlabel('Z轴', fontproperties='simhei')
  44.  
  45. plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载