软件测试|使用Python绘制雷达图(二)

简介: 软件测试|使用Python绘制雷达图(二)

前言

之前我们用matplotlib绘制了雷达图,可能代码量会相对多一些,今天我想起了我们之前介绍过的pyecharts,这个绘图神器,也是支持绘制雷达图的,今天我们来看看实现起来会不会更简单。我们还是以买车的朋友选择来作为我们的数据进行绘制。

绘制基础雷达图

我们还是以我那位朋友为例,他买车的例子确实比较经典,所以我们还是那6个选择,pyecharts支持绘制的图形中就包括了雷达图,引入代码如下:

from pyecharts.charts import Radar

我们先绘制一下单车型的雷达图,选择使用帕萨特的数据进行绘制,代码如下:

import pyecharts.options as op
from pyecharts.charts import Radar

v1 = [[85, 75, 90, 70, 90]]

x_schema = [
        {"name": "舒适性",  "color": 'black', "font_size": 18},
        {"name": "油耗",  "color": 'black', "font_size": 18},
        {"name": "性能", "color": 'black', "font_size": 18},
        {"name": "安全",  "color": 'black', "font_size": 18},
        {"name": "操控",  "color": 'black', "font_size": 18}
    ]

radar_x = Radar()
radar_x.add_schema(x_schema)
radar_x.add('帕萨特', v1, color='red').set_colors(['red'])

radar_x.set_global_opts(
        title_opts=op.TitleOpts(title="car_type", pos_right="center"),
        legend_opts=op.LegendOpts(legend_icon="roundRect", align="left", pos_left='7%',
                                  pos_bottom='14%', orient='vertical')
    )

radar_x.render("car_type.html")

绘制的图像如下:

在这里插入图片描述

绘制全部车型雷达图

我们需要将其他车型的数据也写成上面的帕萨特例子的形式,代码如下:

import pyecharts.options as op
from pyecharts.charts import Radar

# 传入多维数据,数据点最多6个
v1 = [[85, 75, 90, 70, 90]]
v2 = [[87, 72, 95, 75, 95]]
v3 = [[80, 95, 70, 85, 80]]
v4 = [[85, 90, 75, 85, 75]]
v5 = [[85, 85, 80, 80, 85]]
v6 = [[75, 90, 82, 85, 88]]


# 调整雷达各维度的范围大小,维度要求四维以上
x_schema = [
        {"name": "舒适性",  "color": 'black', "font_size": 18},
        {"name": "油耗",  "color": 'black', "font_size": 18},
        {"name": "性能",  "color": 'black', "font_size": 18},
        {"name": "安全",  "color": 'black', "font_size": 18},
        {"name": "操控",  "color": 'black', "font_size": 18}
    ]

# 画图
radar_x = Radar()
radar_x.add_schema(x_schema)
radar_x.add('帕萨特', v1, color='red').set_colors(['red'])
radar_x.add('迈腾', v2, color='green').set_colors(['green'])
radar_x.add('凯美瑞', v3, color='orange').set_colors(['orange'])
radar_x.add('亚洲龙', v4, color='blue').set_colors(['blue'])
radar_x.add('天籁', v5, color='purple').set_colors(['purple'])
radar_x.add('雅阁', v6, color='yellow').set_colors(['yellow'])

radar_x.set_global_opts(
        title_opts=op.TitleOpts(title="car_type", pos_right="center"),
        legend_opts=op.LegendOpts(legend_icon="roundRect", align="left", pos_left='7%',
                                  pos_bottom='14%', orient='vertical')
    )

radar_x.render("car_type.html")

绘制的图像如下所示:

在这里插入图片描述

图像优化

我们看到,因为分值差距不大,导致图像非常密集,因此我们可以传入各项分值的最低值与最高值,更便于我们查看各项数据的差异。代码如下:

import pyecharts.options as op
from pyecharts.charts import Radar

# 传入多维数据,数据点最多6个
v1 = [[85, 75, 90, 70, 90]]
v2 = [[87, 72, 95, 75, 95]]
v3 = [[80, 95, 70, 85, 80]]
v4 = [[85, 90, 75, 85, 75]]
v5 = [[85, 85, 80, 80, 85]]
v6 = [[75, 90, 82, 85, 88]]


# 调整雷达各维度的范围大小,维度要求四维以上
x_schema = [
        {"name": "舒适性", "max": 90, "min": 75, "color": 'black', "font_size": 18},
        {"name": "油耗", "max": 100, "min": 65, "color": 'black', "font_size": 18},
        {"name": "性能", "max": 100, "min": 65, "color": 'black', "font_size": 18},
        {"name": "安全", "max": 100, "min": 65, "color": 'black', "font_size": 18},
        {"name": "操控", "max": 100, "min": 65, "color": 'black', "font_size": 18}
    ]

# x_schema = [
#         {"name": "舒适性",  "color": 'black', "font_size": 18},
#         {"name": "油耗",  "color": 'black', "font_size": 18},
#         {"name": "性能",  "color": 'black', "font_size": 18},
#         {"name": "安全",  "color": 'black', "font_size": 18},
#         {"name": "操控", "color": 'black', "font_size": 18}
#     ]

# 画图
radar_x = Radar()
radar_x.add_schema(x_schema)
radar_x.add('帕萨特', v1, color='red').set_colors(['red'])
radar_x.add('迈腾', v2, color='green').set_colors(['green'])
radar_x.add('凯美瑞', v3, color='orange').set_colors(['orange'])
radar_x.add('亚洲龙', v4, color='blue').set_colors(['blue'])
radar_x.add('天籁', v5, color='purple').set_colors(['purple'])
radar_x.add('雅阁', v6, color='yellow').set_colors(['yellow'])

radar_x.set_global_opts(
        title_opts=op.TitleOpts(title="car_type", pos_right="center"),
        legend_opts=op.LegendOpts(legend_icon="roundRect", align="left", pos_left='7%',
                                  pos_bottom='14%', orient='vertical')
    )

radar_x.render("car_type.html")

新绘制的图像如下所示:

在这里插入图片描述
同样地,如果我们要对比某两款车型的数据,只需要将其他车型置灰即可,如下所示:

在这里插入图片描述

总结

本文主要介绍了使用pyecharts绘制雷达图的方法,相比于matplotlib,pyecharts更加方便一些,对于不同对象的对比更为方便,可以隐藏部分对象,同时,可以对不同维度设置不同的范围,对于差距较小的维度,可以展示出更微小直观的差距。

相关文章
|
6天前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
21 3
|
18天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
24天前
|
测试技术 持续交付 Apache
性能测试不再愁!Python+JMeter+Locust,三步打造高性能应用
【9月更文挑战第4天】随着互联网的发展,软件性能成为衡量应用成功的关键。性能测试确保应用稳定高效运行,但复杂环境和多样需求带来了挑战。Python、JMeter和Locust三款工具可构建高效全面的性能测试方案。Python语法简洁,库丰富;JMeter提供图形界面,支持多种协议;Locust基于Python,简单易用且高度可扩展。结合三者,能满足复杂需求,保证灵活性与高效性。无论初学者还是资深工程师,都能确保应用高性能运行。
26 1
|
28天前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
28天前
|
Web App开发 XML 测试技术
自动化测试框架设计:以Python和Selenium为例
【8月更文挑战第31天】在软件开发的快节奏中,自动化测试成为确保产品质量的关键步骤。本文将引导读者了解如何结合Python语言和Selenium工具来设计一个高效的自动化测试框架。通过浅显易懂的语言和实际代码示例,我们将探索自动化测试框架的核心组件,并学习如何实现它们。无论你是测试新手还是希望提升自动化技能的开发者,这篇文章都将为你打开一扇通向高效软件测试的大门。
|
1月前
|
敏捷开发 测试技术 数据安全/隐私保护
自动化测试的高效之路:如何利用Python和Selenium提升测试效率
【8月更文挑战第28天】本文旨在探讨通过Python语言结合Selenium框架来提高软件测试的效率。文章不仅介绍了自动化测试的基本概念,还提供了具体的代码示例,帮助读者理解如何实现自动化测试脚本,并指出了在实施过程中可能遇到的问题及其解决方案。通过本文,读者将学会如何有效地使用Python和Selenium工具,以减少重复性工作,提升测试流程的效率与准确性。
|
1月前
|
Web App开发 测试技术 持续交付
自动化测试之美:如何利用Selenium和Python提升测试效率
【8月更文挑战第27天】在软件开发的海洋中,自动化测试犹如一艘高速航行的帆船,让质量保证的过程更加迅速而精准。本文将引导你了解如何结合Selenium和Python这两大利器,构建强大的自动化测试框架,从而显著提升测试工作的效率和效果。通过深入浅出的讲解,我们不仅会探索这两个工具的基本使用方法,还会学习如何设计高效的测试用例,以及如何处理测试过程中遇到的各种问题。无论你是测试新手还是希望提高测试技能的开发者,这篇文章都将为你打开一扇通往更高效测试世界的大门。
|
14天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
13 0
|
14天前
|
jenkins 测试技术 持续交付
自动化测试的高效之路:如何利用Python进行Web应用测试
【9月更文挑战第13天】在软件开发的快节奏中,自动化测试是确保质量和效率的关键。本文将引导你了解如何使用Python语言及其强大的测试框架来提升Web应用的测试效率。我们将一起探索编写简洁而强大的测试脚本的技巧,以及如何通过持续集成(CI)实现自动化测试流程。准备好让你的测试工作飞一般的感觉!
|
27天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第31天】 在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!