【Python3.8】使用 matplotlib 绘制雷达图

目录

一、需求

二、代码实现

三、代码分析

1.angles = np.linspace(0,2*np.pi,data_length,endpoint=False)

2.score_a = np.concatenate((score[0], [score[0][0]]))

3.score_a = [int(i) for i in score[0]]

4.ax.plot(angles, score_a, color="b")

5.ax.set_thetagrids(angles*180/np.pi, labels)

6.plt.savefig('temp2.png')


一、需求

scoreRadar.txt:

专业	C语言	Java	Python	C#	Javascript
软件工程 	95	96	85	63	91
计算机科学与技术	75	93	66	85	88
网络工程 	86	76	96	93	67

二、代码实现

直接上代码,代码段后再详细分析:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 使能够读取中文
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
filename = './scoreRadar.txt'
fp = open(filename, 'r', encoding='UTF-8')
List = []
flag = 0
s = fp.readline()
while s:
    # 去除换行符
    s = s.strip('\n')
    new_s = s.split("\t")
    List.append(new_s)
    s = fp.readline()
print(List)
data_length = len(List[0]) - 1
angles = np.linspace(0,2*np.pi,data_length,endpoint=False)
labels = List[0][1:]
score = [item[1:] for item in List[1:]]
print(labels,score)
# 将数据首尾连接,使得画出的线闭合
score_a = np.concatenate((score[0], [score[0][0]]))
score_b = np.concatenate((score[1], [score[1][0]]))
score_c = np.concatenate((score[2], [score[2][0]]))
angles = np.concatenate((angles, [angles[0]]))
labels = np.concatenate((labels, [labels[0]]))

score_a = [int(i) for i in score_a]
score_b = [int(i) for i in score_b]
score_c = [int(i) for i in score_c]
fig = plt.figure(dpi=100)
# 新建一个子图
ax = plt.subplot(111, projection='polar')
# 绘制雷达图
ax.plot(angles, score_a, color="b")
ax.plot(angles, score_b, color="g")
ax.plot(angles, score_c, color="r")
ax.set_rgrids(np.arange(20,120,20))
# 设置雷达图中每一项的标签显示
ax.set_thetagrids(angles*180/np.pi, labels)
# 设置雷达图的0度起始位置
ax.set_theta_zero_location("E")
# 设置雷达图的坐标值显示角度,相对于起始角度的偏移量
ax.set_rlabel_position(30)
ax.set_title("成绩雷达图")
plt.savefig('temp2.png')
plt.show()

三、代码分析

想要使用 matplotlib 绘制出雷达图,就需要使用其中的极坐标绘图。

在此分析及记录一些重要的代码和易错点。

1.angles = np.linspace(0,2*np.pi,data_length,endpoint=False)

作为序列生成器, numpy.linspace()函数用于在线性空间中以均匀步长生成数字序列。

这里使用序列生成器,均匀生成雷达图中每个点相对于极轴的角度(弧度制)。

2.score_a = np.concatenate((score[0], [score[0][0]]))

numpy.concatenate() 函数用于完成数组的拼接。

这里是指使雷达图的点数据首尾相连,形成封闭图形,如果不作封闭,最后绘制结果会如下图所示:

3.score_a = [int(i) for i in score[0]]

这里使用列表生成器将列表内的所有数据转成int类型。不转成int类型将无法正确绘制雷达图。

当然也可以使用如下语句完成类型转换:

score_a = list(map(int,score[0]))

4.ax.plot(angles, score_a, color="b")

这句语句用于绘制雷达图中的数据线段。

需要注意的是angles和score_必须拥有相同的元素数量(这是很容易踩到的一个坑),否则无法绘制!

5.ax.set_thetagrids(angles*180/np.pi, labels)

用于绘制标签。

同上条原理,angles和labels必须拥有相同的元素数量。

6.plt.savefig('temp2.png')

注意,保存图片的代码必须在.show()方法之前,否则会保存出空白的图片,这一点非常重要。

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要安装Python 3.8的Matplotlib,请按照以下步骤操作: 1. 打开终端或命令提示符。 2. 输入以下命令以更新pip: ``` python -m pip install --upgrade pip ``` 3. 输入以下命令以安装Matplotlib: ``` python -m pip install matplotlib ``` 4. 等待安装完成。 5. 验证安装是否成功,可以在Python交互式环境中输入以下命令: ``` import matplotlib print(matplotlib.__version__) ``` 如果输出了Matplotlib的版本号,则说明安装成功。 希望这可以帮助您安装Matplotlib。 ### 回答2: Python3.8 是一种广泛使用的编程语言,并且很多数据科学家和分析师使用它来编写数据分析相关的脚本。在数据可视化领域,matplotlib 是一种流行的 Python 库,它提供了强大的绘图工具。在本文中,我们将介绍如何在 Python3.8 中安装 matplotlib 库。 1. 安装 Python3.8 如果您的计算机上没有 Python3.8,您需要先安装 Python3.8。您可以从官方网站下载并安装 Python3.8,然后将其添加到系统 PATH 变量中。 2. 安装 matplotlib 库 在安装 matplotlib 库之前,我们需要先更新 pip,以确保我们使用的是最新版本。您可以在终端中运行以下命令来更新 pip。 ``` python3.8 -m pip install --upgrade pip ``` 现在,我们可以使用 pip 来安装 matplotlib 库。在终端中运行以下命令以安装 matplotlib 库。 ``` python3.8 -m pip install matplotlib ``` 此命令将自动从 PyPI 下载 matplotlib 库的最新版本,并将其安装到您的 Python3.8 环境中。 3. 测试 matplotlib 库 为了测试 matplotlib 库是否成功安装,我们可以尝试绘制一个简单的图形。在 Python3.8 中打开一个文本编辑器,并将以下代码复制并粘贴到文本编辑器中。 ```python import matplotlib.pyplot as plt # 绘制折线图 plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) # 设置标题 plt.title('Square Numbers') # 设置 X 轴标签 plt.xlabel('Number') # 设置 Y 轴标签 plt.ylabel('Square') # 显示图形 plt.show() ``` 请确保保存代码文件,例如保存为文件名为 `test.py`。现在,我们可以在终端中运行以下命令以运行此程序。 ``` python3.8 test.py ``` 如果您正确地安装了 matplotlib 库,则将显示一个简单的折线图。如果安装过程中遇到任何问题,您可以参考 matplotlib 官方文档或者在网络上查找 troubleshooting 的资源。 4. 总结 在 Python3.8 中安装 matplotlib 库非常容易。只需要运行一条命令,就可以将 matplotlib 安装到您的 Python3.8 环境中。在安装之后,您可以尝试使用 matplotlib 库创建漂亮的数据可视化图形。 ### 回答3: Python是一种非常受欢迎的编程语言,它可以处理一些有趣的问题,例如数据可视化。Matplotlib是一种在Python中创建图形的库,它提供了许多实用工具,可以在各种不同的操作系统上使用。 下面是如何在Python3.8中安装matplotlib的步骤: 第一步:检查Python版本 在安装matplotlib之前,需要检查Python版本。要检查Python版本,请打开终端并输入以下命令: python --version 如果Python版本是3.8或更高版本,则可以继续安装matplotlib。否则,请更新到最新版本。 第二步:安装pip Pip是Python包管理器,可快速安装和管理Python模块。要安装pip,请打开终端并输入以下命令: sudo apt-get install python3-pip 第三步:安装matplotlib 在安装pip之后,可以使用以下命令安装matplotlib: pip3 install matplotlib 等待一段时间后,应该会看到一条成功安装matplotlib的消息。 第四步:测试matplotlib 要测试matplotlib是否成功安装,请在Python IDLE中输入以下命令: import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.show() 此时应该会弹出一个新的窗口,显示一个正弦曲线。 如果您看到了一个错误消息,请查看是否有任何拼写错误。如果您已成功安装matplotlib,则不应看到任何错误消息。 综上所述,要在Python3.8中安装matplotlib,请执行以下步骤:检查Python版本,安装pip,使用pip安装matplotlib,并测试matplotlib是否安装成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没头发的米糊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值