如何使用pyecharts库绘制雷达图?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1303个文字,预计阅读时间需要6分钟。
使用pyecharts绘制雷达图,背景及绘图思路如下:
代码解读:
1.导入pyecharts库中的Radar类。
2.创建Radar对象,设置雷达图的、标签等。
3.添加数据,包括五个关键指标:常住人口、GDP、工业增加值、固定资产投资、居民消费。
4.设置雷达图的指标名称。
5.绘制雷达图,并展示结果。
效果图:
雷达图展示了一个城市在五个关键指标上的表现,其中背景为一张与城市相关的图片。图中每个指标都对应一个指针,指针的位置表示该指标的具体数值。背景:背景图中展示了一个城市的全景,其中包括了城市的主要建筑、道路和地标。
手绘方面:手绘方面,可以参考以下步骤:
1.画出雷达图的基本形状。
2.标注五个关键指标。
3.根据数据绘制指针,并标注数值。
4.将背景图与雷达图结合,形成最终效果。
pyecharts 画雷达图
- 背景
- 绘图思路
- 代码解读
- 效果图
背景
手里面有一份上海市所有板块的与企业相关数据如下,里面有五个关键指标,分别是常住人口,现有办公人口,企业数量,新增招聘人口,平均月薪,还有一个类别标签,总共4类,表示各个板块属于哪个大类。现在的任务是找一个展现方式能够分门别类的把各属性表现出来,于是想到了雷达图,这次用pyecharts来实现。
绘图思路
看了pyecharts 官方文档,其数据是下面那种格式,由逗号隔开的列表构成的大列表,可以看成一个矩阵块。pandas 读进来的数据框是空格隔开的,所以先把数据按类别分成四个数据框,给每个数据框每一行加逗号隔开再组合成大列表,即形成一个矩阵块,然后四个矩阵块又组合成一个大的列表,每个矩阵块作为绘图的数据输入添加进去。
"""
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 matrix
def 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类一次性画出来。
本文共计1303个文字,预计阅读时间需要6分钟。
使用pyecharts绘制雷达图,背景及绘图思路如下:
代码解读:
1.导入pyecharts库中的Radar类。
2.创建Radar对象,设置雷达图的、标签等。
3.添加数据,包括五个关键指标:常住人口、GDP、工业增加值、固定资产投资、居民消费。
4.设置雷达图的指标名称。
5.绘制雷达图,并展示结果。
效果图:
雷达图展示了一个城市在五个关键指标上的表现,其中背景为一张与城市相关的图片。图中每个指标都对应一个指针,指针的位置表示该指标的具体数值。背景:背景图中展示了一个城市的全景,其中包括了城市的主要建筑、道路和地标。
手绘方面:手绘方面,可以参考以下步骤:
1.画出雷达图的基本形状。
2.标注五个关键指标。
3.根据数据绘制指针,并标注数值。
4.将背景图与雷达图结合,形成最终效果。
pyecharts 画雷达图
- 背景
- 绘图思路
- 代码解读
- 效果图
背景
手里面有一份上海市所有板块的与企业相关数据如下,里面有五个关键指标,分别是常住人口,现有办公人口,企业数量,新增招聘人口,平均月薪,还有一个类别标签,总共4类,表示各个板块属于哪个大类。现在的任务是找一个展现方式能够分门别类的把各属性表现出来,于是想到了雷达图,这次用pyecharts来实现。
绘图思路
看了pyecharts 官方文档,其数据是下面那种格式,由逗号隔开的列表构成的大列表,可以看成一个矩阵块。pandas 读进来的数据框是空格隔开的,所以先把数据按类别分成四个数据框,给每个数据框每一行加逗号隔开再组合成大列表,即形成一个矩阵块,然后四个矩阵块又组合成一个大的列表,每个矩阵块作为绘图的数据输入添加进去。
"""
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 matrix
def 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类一次性画出来。

