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

yipeiwu_com6年前Python基础

1.雷达图

程序示例

'''1.空白极坐标图'''
import matplotlib.pyplot as plt
 
plt.polar()
plt.show()
 
'''2.绘制一个极坐标点'''
import numpy as np
import 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 np
import matplotlib.pyplot as plt
theta = 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 np
import matplotlib.pyplot as plt
theta = 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 np
import 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 np
import 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 np
import 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 plt
import numpy as np
import matplotlib as mpl
import matplotlib.font_manager as fm
from 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.3
r = z**4 + 1
x = 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'] = 10
ax.legend(prop=font)
 
plt.show()
 
'''2.绘制三维柱状图,并每个柱子颜色随机'''
import numpy as np
import matplotlib.pyplot as plt
import 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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python分割列表(list)的方法示例

前言 在日常开发中,有些API接口会限制请求的元素个数,这时就需要把一个大列表分割为固定的小列表,再进行相关处理,本文搜集了几个简单的方法,分享出来供大家参考学习,下面来看看详细的介绍:...

Python cookbook(数据结构与算法)实现优先级队列的方法示例

本文实例讲述了Python实现优先级队列的方法。分享给大家供大家参考,具体如下: 问题:要实现一个队列,它能够以给定的优先级对元素排序,且每次pop操作时都会返回优先级最高的那个元素;...

Python2实现的图片文本识别功能详解

Python2实现的图片文本识别功能详解

本文实例讲述了Python2实现的图片文本识别功能。分享给大家供大家参考,具体如下: 这里需要用到python的几个库,分别是pytesser,以及pytesser的依赖库PIL。pyt...

Python 列表去重去除空字符的例子

如下所示: # x = ['c b a',"e d f"] # y = [] # for i in x: # for ii in i: # # print(ii) # if ii =...

教女朋友学Python3(二)简单的输入输出及内置函数查看 原创

教女朋友学Python3(二)简单的输入输出及内置函数查看 原创

这是第二天了,工作之余和女朋友一起学Python3,代码都是她敲的,有点辣眼睛,仅做参考。 1.题目:输入“姓名”,输出“你好,姓名” 有关安装和打开Python shell的步骤,参考...