我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码

目录

1. 基本雷达图

2. 多组数据的雷达图

 3 交互式雷达地图

4 动态雷达图


0 雷达图概述

        雷达图(Radar Chart),也被称为蜘蛛图(Spider Chart)或星型图,是一种用于可视化多维数据的图表类型。雷达图通常由一个多边形或星形的图形构成,每个顶点代表数据的不同维度,而多边形的边缘表示数据的数值。每个维度通常位于雷达图的边缘,而数据值沿着半径方向绘制。

以下是雷达图的一般特点和用途:

特点

  1. 多维度表示:雷达图允许同时表示多个维度的数据,每个维度对应于雷达图的一个轴。这使得用户可以直观地比较不同维度的数据。

  2. 相对比例:数据通常以相对比例的方式表示,因此用户可以看到各维度之间的相对关系。这使得雷达图在比较不同数据集的相对强度时非常有用。

  3. 多数据集对比:雷达图适用于比较多个数据集之间的差异。通过在同一个雷达图上绘制多个多边形,用户可以清晰地看到不同数据集的表现。

用途

  1. 绩效评估:雷达图常用于评估个体或团队在多个维度上的绩效。例如,可以使用雷达图来评估一名运动员在速度、力量、灵活性等维度上的表现。

  2. 决策支持:在决策过程中,雷达图可以帮助决策者比较不同选项在多个关键因素上的优劣。这有助于做出综合决策。

  3. 产品特性对比:在产品设计和开发中,雷达图可以用来比较不同产品特性在用户需求、成本、复杂性等方面的差异。

  4. 风险分析:雷达图可用于分析风险因素在不同维度上的潜在影响。这对于制定风险管理策略很有帮助。

        总之,雷达图是一种多维数据可视化工具,它可以帮助用户更好地理解和比较数据的多个方面,从而支持决策和分析。

1. 基本雷达图

        基本雷达图用于可视化多个维度的数据。这种图通常具有一个中心点,每个维度的数据以线条或面积表示。基本雷达图用于可视化单个数据集的不同类别或维度。

import matplotlib.pyplot as pltimport numpy as np# 数据准备categories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']values = [4, 2, 5, 1, 3]# 标准化数据normalized_values = [x / max(values) for x in values]# 创建雷达图angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()normalized_values += normalized_values[:1]angles += angles[:1]# 绘制雷达图fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})ax.fill(angles, normalized_values, 'b', alpha=0.1)# 设置轴标签ax.set_xticks(angles[:-1])ax.set_xticklabels(categories)# 添加标题plt.title("Filled Radar Chart")plt.show()

        在此示例中,我们首先准备了数据并对其进行了标准化。然后,我们创建了雷达图,并使用fill函数填充了雷达图中的区域,以强调每个维度的值。最后,我们添加了轴标签和标题,以提高图表的可读性。 

2. 多组数据的雷达图

这个示例展示如何绘制多组数据的雷达图,以便比较它们。

import matplotlib.pyplot as pltimport numpy as npcategories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']values1 = [4, 2, 5, 1, 3]values2 = [3, 4, 2, 3, 5]angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()values1 += values1[:1]values2 += values2[:1]angles += angles[:1]fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})ax.fill(angles, values1, 'b', alpha=0.1, label='Dataset 1')ax.fill(angles, values2, 'r', alpha=0.1, label='Dataset 2')ax.set_xticks(angles[:-1])ax.set_xticklabels(categories)ax.legend()plt.show()

 3 交互式雷达地图

交互式雷达地图允许用户与地图进行互动,例如缩放、平移、悬停在数据点上查看详细信息等。Plotly是一个流行的Python库,用于创建交互式图表,包括雷达图。

首先,确保你已经安装了Plotly库。如果没有安装,可以使用以下命令进行安装:

pip install plotly

绘制交互式雷达地图:

import plotly.express as px# 示例数据data = {    "City": ["New York", "Los Angeles", "Chicago", "Houston", "Miami"],    "Temperature (°C)": [18, 24, 12, 27, 29],    "Humidity (%)": [75, 62, 58, 84, 76]}# 创建交互式雷达地图fig = px.line_polar(data, r="Temperature (°C)", theta="City", line_close=True, range_r=[0, 30])fig.update_traces(fill='toself')# 添加湿度数据fig.add_trace(px.line_polar(data, r="Humidity (%)", theta="City", line_close=True, range_r=[0, 100]).data[0])# 设置布局fig.update_layout(    polar=dict(        radialaxis=dict(            visible=True,            range=[0, 100]        )    ),    showlegend=True)# 显示交互式雷达地图fig.show()

结果在浏览器中展示如下:

在这个示例中,我们使用plotly.express创建了一个交互式雷达地图。我们首先定义了示例数据,包括城市、平均气温和湿度。然后,我们使用px.line_polar创建了一个雷达图,显示平均气温数据,同时使用px.line_polar添加了湿度数据。最后,我们设置了布局选项,并使用fig.show()显示交互式雷达地图。 

动态雷达图

用于跟踪数据随时间变化的情况。每个时间点都可以表示为一个雷达图,形成时间序列。

import matplotlib.pyplot as pltimport numpy as np# 数据准备categories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']time_points = ['Time 1', 'Time 2', 'Time 3', 'Time 4', 'Time 5']# 模拟不同时间点的数据,确保每个时间点的数据长度相同data = np.random.randint(1, 10, size=(len(time_points), len(categories)))# 创建雷达图fig, axs = plt.subplots(1, len(time_points), subplot_kw={'projection': 'polar'}, figsize=(12, 4))for i, ax in enumerate(axs):    values = data[i]    angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()    values = np.append(values, values[0])  # 为了保证维度一致,添加一个起始点    angles = np.append(angles, angles[0])  # 添加一个起始角度    ax.fill(angles, values, 'b', alpha=0.1)    ax.set_xticks(angles[:-1])    ax.set_xticklabels(categories)    ax.set_title(time_points[i])plt.tight_layout()plt.show()

         在此示例中,我们创建了一个包含不同时间点数据的雷达图时间序列。每个时间点的数据以不同的颜色表示,并排列在一个图表中,以显示数据随时间的变化。这是一个简单的静态示例,你可以使用动画库或交互式可视化工具库来创建动态雷达图,以更好地表示数据的时间演变。

来源地址:https://blog.csdn.net/qq_35831906/article/details/133822024

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录