如何用python绘制雷达图
作者:小dull鸟 发布时间:2023-04-19 12:44:09
标签:python,绘图,雷达图
目录
一、比较汽车性能
二、比较不同城市近期天气状况
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点。
下面以实际例子给大家讲解一下雷达图的应用场景和绘制方法:
一、比较汽车性能
这类雷达图一般用于比较同类事物不同纬度性能的优劣,以奥迪A4L时尚动感型和凯迪拉克CT4精英型为例,我们来画一下这两种汽车的雷达图,代码如下:
import pyecharts.options as opts
from pyecharts.charts import Radar
v1 = [[110, 9.7, 6.2, 56, 150, 1610]]
v2 = [[174, 6.9, 6.8, 66, 237, 1540]]
c=(
Radar(init_opts=opts.InitOpts(bg_color="#3CB371")) #设置背景颜色
.add_schema(
schema=[
opts.RadarIndicatorItem(name="最大功率率(KW)", max_=200),
opts.RadarIndicatorItem(name="百米提速(秒)", max_=12),
opts.RadarIndicatorItem(name="综合油耗(L/100KM)", max_=20),
opts.RadarIndicatorItem(name="油箱容积(L)", max_=100),
opts.RadarIndicatorItem(name="马力(Ps)", max_=300),
opts.RadarIndicatorItem(name="整车质量KG()", max_=2000),
],
splitarea_opt=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1) #是否显示分隔区域,透明度设置为1
),
textstyle_opts=opts.TextStyleOpts(color="#fff"),
)
.add(
series_name="奥迪A4L时尚动感型",
data=v1,
linestyle_opts=opts.LineStyleOpts(color="#8B008B",width=2), #线的颜色、宽度
)
.add(
series_name="凯迪拉克CT4精英型",
data=v2,
linestyle_opts=opts.LineStyleOpts(color="#FFA500",width=2), #线的颜色、宽度
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) #不显示数字
.set_global_opts(
title_opts=opts.TitleOpts(title="汽车性能比较"), legend_opts=opts.LegendOpts()
)
)
c.render_notebook()
参数介绍:
1.通过设置InitOpts的bg_color参数,可以改变背景颜色
2.通过设置add_schema的schema参数,可以添加更多纬度变量
3.通过设置LineStyleOpts的color参数,可以设置线的颜色和宽度
通过雷达图,可以清晰的比较两种汽车性能指标的好坏,非常直观
如果感觉两台车不过瘾,我们可以再加1台:
二、比较不同城市近期天气状况
from pyecharts import options as opts
from pyecharts.charts import Radar
value_bj = [
[55, 9, 56, 0.46, 18, 6, 1],
[25, 11, 21, 0.65, 34, 9, 2],
[56, 7, 63, 0.3, 14, 5, 3],
[33, 7, 29, 0.33, 16, 6, 4],
[42, 24, 44, 0.76, 40, 16, 5],
[82, 58, 90, 1.77, 68, 33, 6],
[74, 49, 77, 1.46, 48, 27, 7],
[78, 55, 80, 1.29, 59, 29, 8],
[267, 216, 280, 4.8, 108, 64, 9],
[185, 127, 216, 2.52, 61, 27, 10],
[39, 19, 38, 0.57, 31, 15, 11],
[41, 11, 40, 0.43, 21, 7, 12],
]
value_sh = [
[91, 45, 125, 0.82, 34, 23, 1],
[65, 27, 78, 0.86, 45, 29, 2],
[83, 60, 84, 1.09, 73, 27, 3],
[109, 81, 121, 1.28, 68, 51, 4],
[106, 77, 114, 1.07, 55, 51, 5],
[109, 81, 121, 1.28, 68, 51, 6],
[106, 77, 114, 1.07, 55, 51, 7],
[89, 65, 78, 0.86, 51, 26, 8],
[53, 33, 47, 0.64, 50, 17, 9],
[80, 55, 80, 1.01, 75, 24, 10],
[117, 81, 124, 1.03, 45, 24, 11],
[99, 71, 142, 1.1, 62, 42, 12],
]
c_schema = [
{"name": "AQI", "max": 300, "min": 5},
{"name": "PM2.5", "max": 250, "min": 20},
{"name": "PM10", "max": 300, "min": 5},
{"name": "CO", "max": 5},
{"name": "NO2", "max": 200},
{"name": "SO2", "max": 100},
]
c = (
Radar(init_opts=opts.InitOpts(bg_color="#8B658B"))
.add_schema(schema=c_schema, shape="polygon")
.add("北京", value_bj,color="#8B008B",linestyle_opts=opts.LineStyleOpts(width=2))
.add("上海", value_sh,color="#FF4500",linestyle_opts=opts.LineStyleOpts(width=2))
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="一线城市空气质量比较"))
)
c.render_notebook()
通过增加数据种类,可以比较同一纬度、不同时间下的差距,如上图,通过展示北京、上海两座城市12天的天气情况,可以清晰的看出上海的天气要比北京好。
来源:https://mp.weixin.qq.com/s/1AqohZ_v7eMptkanr2JXWQ


猜你喜欢
- 本文实例讲述了Python3实现的Mysql数据库操作封装类。分享给大家供大家参考,具体如下:#encoding:utf-8#name:mo
- 对象Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。1. 标识用于唯一标识对象,
- 前言最近公司为客户重新部署了一套新环境,由我来完成了基础环境的配置,配置过程中总结了一些经验,分享给各位园友使用 curl 命令检查网络拿到
- 本人 python新手,使用的环境是python2.7,勿喷# -*- coding:utf8 -*-import random
- 本文实例讲述了Python列表操作。分享给大家供大家参考,具体如下:#coding=utf8'''''
- 问题现象元素的属性中没有id、name;虽然有class,但比较大众化,且位置也不固定;例如:页码中的下一页;那该如何找到该元素?<a
- 来介绍一下 Python 是采用何种途径解决循环引用问题的。上图中,表示的是对象之间的引用关系,从自对象指向他对象的引用用黑色箭头表示。每个
- 本文实例讲述了Python多层装饰器用法。分享给大家供大家参考,具体如下:前言Python 的装饰器能够在不破坏函数原本结构的基础上,对函数
- 生成txt文件:mesg = "hello world"with open("test.txt",
- 网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下
- 本文实例讲述了Python批量重命名同一文件夹下文件的方法。分享给大家供大家参考。具体分析如下:朋友发了一个文件夹过来,里面的图片都以 .t
- 如下:re.split(pattern, string, [maxsplit], [flags])pattern:表示模式字符串,由要匹配的
- 天我们看看import的有关内容。编程时总是用到import导入,动不动就导入,很简单,但import到底是个什么功能,它的本质是什么?一.
- 最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接对struct结构进行操作的
- 我们常常会用到PHP过滤一些标签的功能,比如过滤链接标签、过滤script标签等等,下面就介绍一下PHP过滤常用标签的正则表达式代码:$st
- 在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace
- 这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习。html结构<div id="game"&
- 来到杭州,迅速租了房子,扫了日常用品。再非专业地提前体验一下与工作有那么一点点点点点相关的UED(用户体验设计)。良好的用户体验是一种非必须
- 1.新建四个层,放入相应图片,模特层的z-index值设为0。2.把第一个层移到模特身上,找出衣服刚好穿上时层的top和left值,记下来,
- 前言我们上一篇博客,给大家展现了一个动态的爱心。今天,我们给大家画一个圣诞树,我们一起来看看效果吧。效果展示我们先来看看最终的效果看看我们画