Python可视化神器pyecharts绘制雷达图
作者:王小王_123??????? 发布时间:2021-09-30 14:50:48
雷达图
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于 平行坐标图,轴径向排列。
平行坐标图:
平行坐标图是一种通常的可视化方法, 用于对 高维几何 和 多元数据 的可视化。
为了表示在高维空间的一个点集,在N条平行的线的背景下,(一般这N条线都竖直且等距),一个在高维空间的点被表示为一条拐点在N条平行坐标轴的折线,在第K个坐标轴上的位置就表示这个点在第K个维的值。
平行坐标图是信息可视化的一种重要技术。为了克服传统的笛卡尔直角坐标系容易耗尽空间、 难以表达三维以上数据的问题, 平行坐标图将高维数据的各个变量用一系列相互平行的坐标轴表示, 变量值对应轴上位置。为了反映变化趋势和各个变量间相互关系,往往将描述不同变量的各点连接成折线。所以平行坐标图的实质是将m维欧式空间的一个点Xi(xi1,xi2,...,xim) 映射到二维平面上的一条曲线。
平行坐标图的一个显著优点是其具有良好的数学基础,其射影几何解释和对偶特性使它很适合用于可视化数据分析。
雷达图主要应用于企业经营状况—— href="https://baike.baidu.com/item/%E6%94%B6%E7%9B%8A" rel="nofollow" target="_blank"> 收益性、生产性、流动性、安全性和成长性的评价。上述指标的分布组合在一起非常象雷达的形状,因此而得名。
雷达图模板系列
基础雷达图
import pyecharts.options as opts
from pyecharts.charts import Radar
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
(
Radar(init_opts=opts.InitOpts(width="1280px", height="720px", bg_color="#CCCCCC"))
.add_schema(
schema=[
opts.RadarIndicatorItem(name="销售(sales)", max_=6500),
opts.RadarIndicatorItem(name="管理(Administration)", max_=16000),
opts.RadarIndicatorItem(name="信息技术(Information Technology)", max_=30000),
opts.RadarIndicatorItem(name="客服(Customer Support)", max_=38000),
opts.RadarIndicatorItem(name="研发(Development)", max_=52000),
opts.RadarIndicatorItem(name="市场(Marketing)", max_=25000),
],
splitarea_opt=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
textstyle_opts=opts.TextStyleOpts(color="#fff"),
)
.add(
series_name="预算分配(Allocated Budget)",
data=v1,
linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
)
.add(
series_name="实际开销(Actual Spending)",
data=v2,
linestyle_opts=opts.LineStyleOpts(color="#5CACEE"),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="基础雷达图"), legend_opts=opts.LegendOpts()
)
.render("基础雷达图.html")
)
单例雷达图
from pyecharts import options as opts
from pyecharts.charts import Radar
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
c = (
Radar()
.add_schema(
schema=[
opts.RadarIndicatorItem(name="销售", max_=6500),
opts.RadarIndicatorItem(name="管理", max_=16000),
opts.RadarIndicatorItem(name="信息技术", max_=30000),
opts.RadarIndicatorItem(name="客服", max_=38000),
opts.RadarIndicatorItem(name="研发", max_=52000),
opts.RadarIndicatorItem(name="市场", max_=25000),
]
)
.add("预算分配", v1)
.add("实际开销", v2)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
legend_opts=opts.LegendOpts(selected_mode="single"),
title_opts=opts.TitleOpts(title="标题"),
)
.render("一维雷达图.html")
)
空气质量模板
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()
.add_schema(schema=c_schema, shape="circle")
.add("北京", value_bj, color="#f9713c")
.add("上海", value_sh, color="#b3e4a1")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="空气质量"))
.render("空气质量.html")
)
颜色雷达图
线条颜色可以配置:
from pyecharts import options as opts
from pyecharts.charts import Radar
data = [{"value": [4, -4, 2, 3, 0, 1], "name": "预算分配"}]
c_schema = [
{"name": "销售", "max": 4, "min": -4},
{"name": "管理", "max": 4, "min": -4},
{"name": "技术", "max": 4, "min": -4},
{"name": "客服", "max": 4, "min": -4},
{"name": "研发", "max": 4, "min": -4},
{"name": "市场", "max": 4, "min": -4},
]
c = (
Radar()
.set_colors(["#4587E7"])
.add_schema(
schema=c_schema,
shape="circle",
center=["50%", "50%"],
radius="80%",
angleaxis_opts=opts.AngleAxisOpts(
min_=0,
max_=360,
is_clockwise=False,
interval=5,
axistick_opts=opts.AxisTickOpts(is_show=False),
axislabel_opts=opts.LabelOpts(is_show=False),
axisline_opts=opts.AxisLineOpts(is_show=False),
splitline_opts=opts.SplitLineOpts(is_show=False),
),
radiusaxis_opts=opts.RadiusAxisOpts(
min_=-4,
max_=4,
interval=2,
splitarea_opts=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
),
polar_opts=opts.PolarOpts(),
splitarea_opt=opts.SplitAreaOpts(is_show=False),
splitline_opt=opts.SplitLineOpts(is_show=False),
)
.add(
series_name="预算",
data=data,
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
)
.render("颜色雷达图.html")
)
来源:https://blog.51cto.com/u_15172991/5428186


猜你喜欢
- 前言如何通过python实现邮件解析?邮件的格式十分复杂,主要是mime协议,本文主要是从实现出发,具体原理可以自行研究。一、安装通过mai
- 搞了一个DIV+CSS菜单,兼容Firefox,分享给大家,大家一齐学习 <!DOCTYPE html PUBLIC "-/
- 以下是个人对Python深浅拷贝的通俗解释,易于绕开复杂的Python数据结构存储来进行理解!高级语言中变量是对内存及其地址的抽象,Pyth
- 认为整理的还比较详细的,亲们,就快点收藏起来吧!PHP系统类函数assert函数:检查assertion声明是否错误extension_lo
- 目录前言一、常用命令二、嗅探数据包三、构造数据包四、各个协议用法五、发包,收包六、SYN半开式扫描七、数据包序列化,反序列化八、数据包与字符
- 误区 #28:有关大容量事务日志恢复模式的几个误区28 a)常见的DML操作可以被“最小记录日志” &nb
- 邮件自动化篇章所需的新模块:smtplib 邮件协议与发送模块email 内容定义模块schedule 定时模块smtplib 与 emai
- 一、数字类型。数字类型按照我的分类方法分为三类:整数类、小数类和数字类。 我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同
- 这里假设你已经申请完微信支付1. 微信后台配置 如图我们先进行测试,所以先把测试授权目录和 测试白名单添加上。测试授权目录是你要
- 在安装依然主机管理系统时,因为当时导入MSSQL时有点问题,所以,为了赶快能用上管理功能,所以就暂时先用了Access数据库。不过一直以来都
- 1. ADO.NET 方式连接Mysql数据库 经过在网上查找资料,在.net 上连接mysql 数据库有三种方式: 方法一: 使用Core
- resources文件下面有一个lang文件夹下面有一个en文件夹,这里就是后面要使用到的存放语言的语言包的地方了。下面设置app.php里
- MySQL 日期时间教程 在本教程中,我将通过示例解释 MySQL DATE 和 TIME 函数。 DA
- 一、基本类型和引用类型基本的数据类型有5个:undefined,boolean,number,string,nulltypeof null;
- floor()方法返回不大于x的最大整数(向下取整)。语法以下是floor()方法的语法:import mathmath.flo
- 今天讲下软件开发中最常见的历史数据迁移方式。在讲迁移之前,先简单介绍下几个基本概念。1、什么是历史数据迁移?简单直白地说:就是将一些创建时间
- 过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束第一步:建立
- 说明字符串驻留是一种仅保存一份相同且不可变字符串的方法。不同的值被存放在字符串驻留池中,发生驻留之后, 许多变量可能指向内存中的相同字符串对
- 今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。网上说用流来处理,没有这么做。这像是一个
- 今天在慕课网上学习了有关于python操作MySQL的相关知识,在此做些总结。python操作数据库还是相对比较简单的,由于python统一