pyecharts 画雷达图
pyecharts 画雷达图
- 背景
- 绘图思路
- 代码解读
- 效果图
背景
手里面有一份上海市所有板块的与企业相关数据如下,里面有五个关键指标,分别是常住人口,现有办公人口,企业数量,新增招聘人口,平均月薪,还有一个类别标签,总共4类,表示各个板块属于哪个大类。现在的任务是找一个展现方式能够分门别类的把各属性表现出来,于是想到了雷达图,这次用pyecharts来实现。
绘图思路
看了pyecharts 官方文档,其数据是下面那种格式,由逗号隔开的列表构成的大列表,可以看成一个矩阵块。pandas 读进来的数据框是空格隔开的,所以先把数据按类别分成四个数据框,给每个数据框每一行加逗号隔开再组合成大列表,即形成一个矩阵块,然后四个矩阵块又组合成一个大的列表,每个矩阵块作为绘图的数据输入添加进去。
# -*- coding: utf-8 -*-
"""
project_name:radar
@author: 帅帅de三叔
Created on Mon Oct 21 17:28:01 2019
"""
from pyecharts import options as opts #用以设置
from pyecharts.charts import Radar #导入雷达类
import pandas as pd #导入数据分析模块
radar_data=pd.read_excel("产业数据_雷达图.xlsx",sheet_name='Sheet4',index_col=u'编号') #读取数据def get_matrix(): #定义数据转换函数matrix=[] #由矩阵构成的数组for classification in radar_data['类别2'].unique(): #按类别class_=radar_data[radar_data['类别2']==classification]features=class_.iloc[:,1:-1]mat=[]for row in range(features.shape[0]): #每一类再按行循环#print(row)value_class= ",".join(str(i) for i in features.values[row]).split(",") #series中间元用逗号隔开value=[float(x) for x in value_class] #构造由浮点数构成的数组,一个数组就是雷达图里面一个多边形mat.append(value) #追加到小mat里面matrix.append(mat) #小mat追加到大的matrix里面去#print(matrix) #查看matrix格式return matrixdef radar(): #定义绘图函数c_schema = [{"name": "常住人口", "max": 110, "min": -1},{"name": "现有办公人口", "max": 110, "min": -1},{"name": "企业数量", "max": 110, "min": -1},{"name": "新增招聘人口", "max": 110,"min":-1},{"name": "平均月薪", "max": 110,"min":-1},] #以字典形式设置雷达图指标名称和范围 radar=Radar() #初始化对象,单独调用radar.add("Class=0",get_matrix()[0],color="#f9713c") #添加第一类数据并绘图radar.add("Class=1",get_matrix()[1],color="#4169E1") #添加第二类数据并绘图radar.add("Class=2",get_matrix()[2],color="#00BFFF") #添加第三类数据并绘图radar.add("Class=3",get_matrix()[3],color="#3CB371") #添加第四类数据并绘图 radar.add_schema(schema=c_schema,shape="polygon") #schema设置radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) #是否打标签radar.set_global_opts(title_opts=opts.TitleOpts(title="企业指标")) #标题return radar.render("radar.html") #渲染成html格式if __name__=="__main__":radar()
代码解读
代码定义出两个函数 **get_matrix()**和 radar() 分别用来处理数据和绘图,关键是处理数据,首先一行一行的字符串处理加逗号隔开,然后再浮点型转化成数组,每一个数组就是雷达图里面一个多边形,然后追加到mat里面去,每个mat就是矩阵块,即一个类别的数据,然后所有类别追加在一起就构成了matrix 列表,然后用切片技术作为绘图的数据输入, pyecharts例子大多是链式调用,这里采用的是单独调用。
效果图
最后渲染成html格式效果图,有一定的互动效果,可以勾选Class=0,只显示第0类雷达图,画一次就能把4类一次性画出来。
pyecharts 画雷达图相关推荐
- python数据可视化—用pyecharts画雷达图
什么是pyecharts pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyech ...
- python画雷达图-python 雷达图
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 假设某天某地每三个小时取样的气温为 0时 3时 6时 9时 12时 15 ...
- pyecharts:雷达图
看到在Tableau上画雷达图挺麻烦的,需要导入背景图片:matplotlib也没有直接画雷达图的函数,需要借助数学知识一步步实现.其他软件就不清楚了,但是pyecharts里有对应的函数Radar, ...
- JS Echarts之雷达图 | 使用Excel画雷达图
文章目录 第一部分:JS Echarts之雷达图 1. 什么是 Echarts 2. JS Echarts之雷达图 2.1 使用Echarts画雷达图 2.3 echarts雷达图中常用修改 修改in ...
- python利用json和pyecharts画折线图实例
目录 一.json模块对数据进行处理 二.利用pyecharts画折线图 三.利用pyecharts画美.日.印三国家折线图 四.本文数据集 注:本次实验的数据在文章最后面,我已上传至百度网盘 一.j ...
- JFreeChart画雷达图、带刻度雷达图、蜘蛛网、带刻度蜘蛛网
画雷达图 /** * @作者:Jcuckoo * @日期:2008-12-9 * @版本:V 1.0 */ public class MySpriderWebPlotTest { public sta ...
- python画雷达图-Python 详解雷达图/蛛网图
雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...
- 雷达图pandas——画雷达图详解
数据读取后的样式 result = pd.read_csv('books.csv', sep=',') 数据处理 result=result.set_index('Unnamed: 0') 3.分别取 ...
- 学会用pyecharts画玫瑰图
文章目录 文章目录 前言 相关文档文档和社区 1.中文官方文档 2.官方github 3.社区 一.什么是玫瑰图? 二.玫瑰图的特点 1.适合对比分析,没有占比意义 2.数据差异不宜过大 3.可以反映 ...
- python画雷达图-python使用matplotlib绘制雷达图
本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd impo ...
最新文章
- 如何用java语法解析接口返回的json串?
- Mock.js mysql_平台支持mock功能—未完成版
- 数据源的配置和使用 视频下载
- P1377 [TJOI2011]树的序 笛卡尔树优化建树
- jdk 9和jdk8_JDK 9已完成功能!
- 云服务器文件打包,云服务器文件打包
- 动态顺序图可视化控件
- javascript async await
- Android开发笔记(一百四十七)标签布局TabLayout
- JavaScript学习笔记——DOM基础 2.1
- RTDS 推出 NovaCor
- java开源工作流引擎
- 基于云开发的成语答题小程序
- 数据库防火墙闪亮登场(好文共赏)
- python找与7相关的数字_Python 入门系列 —— 7. 数字类型介绍
- 正则函数--search/match/findall/sub/split
- 小程序底部兼容iphoneX
- linux dosbox 窗口大小,Linux下dosbox的配置
- 参禅静坐--虚极静笃--快速恢复脑力体力
- Python如何爬取不确定页数的网页
热门文章
- Scratch Games Scratch游戏
- python之单例模式
- C#-概念-类库:类库
- MATLAB linspace函数
- 省市县选择框html,省市县.html
- 倾斜摄影三维建模软件photoscan教程
- Default clip could not be found in attached animations list...must be marked as legacy解决办法
- opencv读取视频转换成一张张图片
- java delayqueue_详解java中DelayQueue的使用
- 小程序tab栏菜单的切换