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 画雷达图相关推荐

  1. python数据可视化—用pyecharts画雷达图

    什么是pyecharts pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyech ...

  2. python画雷达图-python 雷达图

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 假设某天某地每三个小时取样的气温为 0时 3时 6时 9时 12时 15 ...

  3. pyecharts:雷达图

    看到在Tableau上画雷达图挺麻烦的,需要导入背景图片:matplotlib也没有直接画雷达图的函数,需要借助数学知识一步步实现.其他软件就不清楚了,但是pyecharts里有对应的函数Radar, ...

  4. JS Echarts之雷达图 | 使用Excel画雷达图

    文章目录 第一部分:JS Echarts之雷达图 1. 什么是 Echarts 2. JS Echarts之雷达图 2.1 使用Echarts画雷达图 2.3 echarts雷达图中常用修改 修改in ...

  5. python利用json和pyecharts画折线图实例

    目录 一.json模块对数据进行处理 二.利用pyecharts画折线图 三.利用pyecharts画美.日.印三国家折线图 四.本文数据集 注:本次实验的数据在文章最后面,我已上传至百度网盘 一.j ...

  6. JFreeChart画雷达图、带刻度雷达图、蜘蛛网、带刻度蜘蛛网

    画雷达图 /** * @作者:Jcuckoo * @日期:2008-12-9 * @版本:V 1.0 */ public class MySpriderWebPlotTest { public sta ...

  7. python画雷达图-Python 详解雷达图/蛛网图

    雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...

  8. 雷达图pandas——画雷达图详解

    数据读取后的样式 result = pd.read_csv('books.csv', sep=',') 数据处理 result=result.set_index('Unnamed: 0') 3.分别取 ...

  9. 学会用pyecharts画玫瑰图

    文章目录 文章目录 前言 相关文档文档和社区 1.中文官方文档 2.官方github 3.社区 一.什么是玫瑰图? 二.玫瑰图的特点 1.适合对比分析,没有占比意义 2.数据差异不宜过大 3.可以反映 ...

  10. python画雷达图-python使用matplotlib绘制雷达图

    本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd impo ...

最新文章

  1. 如何用java语法解析接口返回的json串?
  2. Mock.js mysql_平台支持mock功能—未完成版
  3. 数据源的配置和使用 视频下载
  4. P1377 [TJOI2011]树的序 笛卡尔树优化建树
  5. jdk 9和jdk8_JDK 9已完成功能!
  6. 云服务器文件打包,云服务器文件打包
  7. 动态顺序图可视化控件
  8. javascript async await
  9. Android开发笔记(一百四十七)标签布局TabLayout
  10. JavaScript学习笔记——DOM基础 2.1
  11. RTDS 推出 NovaCor
  12. java开源工作流引擎
  13. 基于云开发的成语答题小程序
  14. 数据库防火墙闪亮登场(好文共赏)
  15. python找与7相关的数字_Python 入门系列 —— 7. 数字类型介绍
  16. 正则函数--search/match/findall/sub/split
  17. 小程序底部兼容iphoneX
  18. linux dosbox 窗口大小,Linux下dosbox的配置
  19. 参禅静坐--虚极静笃--快速恢复脑力体力
  20. Python如何爬取不确定页数的网页

热门文章

  1. Scratch Games Scratch游戏
  2. python之单例模式
  3. C#-概念-类库:类库
  4. MATLAB linspace函数
  5. 省市县选择框html,省市县.html
  6. 倾斜摄影三维建模软件photoscan教程
  7. Default clip could not be found in attached animations list...must be marked as legacy解决办法
  8. opencv读取视频转换成一张张图片
  9. java delayqueue_详解java中DelayQueue的使用
  10. 小程序tab栏菜单的切换