数据可视化之NBA球员雷达图 您所在的位置:网站首页 饼图的图例如何进行文字编辑 数据可视化之NBA球员雷达图

数据可视化之NBA球员雷达图

2023-06-18 22:03| 来源: 网络整理| 查看: 265

目录

前言

一、雷达图介绍

二、时间轴介绍

三、代码实现过程

安装pyecharts

1.导入所需的pandas库pyecharts库还有相关的包

2.导入NBA球员数据

3.数据处理

4.每个方向的小标题文字的格式配置

5.添加两个需要比较的数据

6.配置数据标签

7.设置大标题,设置图例

8.创建时间轴组件

效果图

附完整代码

总结

前言

通过使用python语言,我们可以很容易地制作出我们需要的图像。图像生成可以直接而清晰地让我们了解数据,我们称之为信息可视化。现在让我们来讲解一下雷达图。本人新手小白,如果有什么问题请多多包涵

一、雷达图介绍

雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点因此使用NBA球员数据进行分析。雷达图在显示各维度数据的对比情况的同时,还可以对全部维度的整体情况有一个直观的展示。

雷达图的缺点

1.如果雷达图像上的多边形过多,会降低可读性,使整体图形过于混乱。特别是在有颜色填充的多边形的情况下,上层会遮挡并覆盖下层的多边形

2.如果变量太多,也会导致可读性下降,因为一个变量对应一个坐标轴,这会使坐标轴过于密集,使图表感觉复杂。因此,最好的做法是尽可能控制变量的数量,以保持雷达图的简单明了

二、时间轴介绍

它是将一个或多个事件按时间顺序连接起来,形成一个相对完整的记录系统,然后以图文的形式呈现给用户;时间线可以应用于不同的领域,其最大的功能是将过去的事件系统化、整合和提炼。

三、代码实现过程 安装pyecharts

先启动anaconda或windows系统的命令提示符,然后在命令行中执行在线下载安装pyecharts库的命令,示例如下所示:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

1.导入所需的pandas库pyecharts库还有相关的包 import pandas as pd import pyecharts.options as opts from pyecharts.charts import Radar from pyecharts.charts import Timeline 2.导入NBA球员数据 data = pd.read_excel(r'NBA中国官方网站 _ 球员数据.xlsx') df = pd.read_excel(r'NBA中国官方网站 _ 球员数据2.xlsx') 3.数据处理

用query函数进行数据筛选再用values.tolist()方法进行数据的转换

data1 = data.query(f'赛季=={year}')[['场均得分','场均篮板','场均助攻','场均抢断','场均盖帽']].values.tolist() data2 = df.query(f'赛季=={year}')[['场均得分','场均篮板','场均助攻','场均抢断','场均盖帽']].values.tolist() 4.每个方向的小标题文字的格式配置 .add_schema( schema=[ opts.RadarIndicatorItem(name="场均得分", max_=32), opts.RadarIndicatorItem(name="场均篮板", max_=12), opts.RadarIndicatorItem(name="场均助攻", max_=12), opts.RadarIndicatorItem(name="场均抢断", max_=2), opts.RadarIndicatorItem(name="场均盖帽", max_=1.5), ], splitarea_opt=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1) ), textstyle_opts=opts.TextStyleOpts(color="#4587E7",#字体颜色 font_style='normal',##字体样式 可选:'normal','italic','oblique' font_weight='bold',#字体宽度 可选粗细 'normal','bold','bolder','lighter' font_family= 'monospace',#字体 font_size=15 #字体大小 ), #每个方向的小标题文字的格式配置 ) 5.添加两个需要比较的数据 .add( series_name="德安德烈·艾顿", data=data1, color = 'yellow', linestyle_opts=opts.LineStyleOpts(color="yellow"), areastyle_opts = opts.AreaStyleOpts(opacity=0.2) ) .add( series_name="OG·阿奴诺比", data=data2, color = 'purple', linestyle_opts=opts.LineStyleOpts(color="purple"), areastyle_opts = opts.AreaStyleOpts(opacity=0.2) ) 6.配置数据标签

.set_series_opts配置一些数据系列参数

格式为:.set_global_opts(legend_opts=opts.LegendOpts(具体参数))

具体参数细则参考LegendOpts的参数详情网址:A Python Echarts Plotting Library

.set_series_opts(label_opts=opts.LabelOpts(is_show=True,color='white'))# 设置数据标签的格式 7.设置大标题,设置图例

.set_global_opts配置一些全局参数

格式为:.set_global_opts(title_opts=opts.TitleOpts(具体参数))

具体参数细则参考TitleOpts的参数详情网站:A Python Echarts Plotting Library

.set_global_opts( title_opts=opts.TitleOpts(title="基础雷达图",pos_left='3%',#大标题的位置可以为百分比 title_textstyle_opts=opts.TextStyleOpts(color='#4587E7',font_size=32,font_weight='bold') #大标题文字的格式配置 ), legend_opts=opts.LegendOpts(pos_left='left',#图例横向的位置,left表示在左侧,可以为百分比 pos_top='middle',#图例纵向的位置,middle表示中间位置,可以为百分比 orient='vertical'#图例方式的方式 horizontal为横向vertical为纵向 ) ) 8.创建时间轴组件 tl = Timeline() tl.add_schema( is_auto_play=False, #选择播放 # play_interval=1000,#播放时间间隔,毫秒 ) for year in range(2017,2022+1): c = rader(year) # 雷达图 tl.add(c,f'{year}年') tl.render_notebook() 效果图

附完整代码 import pandas as pd import pyecharts.options as opts from pyecharts.charts import Radar from pyecharts.charts import Timeline data = pd.read_excel(r'NBA中国官方网站 _ 球员数据.xlsx') df = pd.read_excel(r'NBA中国官方网站 _ 球员数据2.xlsx') def rader(year): data1 = data.query(f'赛季=={year}')[['场均得分','场均篮板','场均助攻','场均抢断','场均盖帽']].values.tolist() data2 = df.query(f'赛季=={year}')[['场均得分','场均篮板','场均助攻','场均抢断','场均盖帽']].values.tolist() c=( Radar(init_opts=opts.InitOpts(bg_color="#CCCCCC")) #背景颜色 .add_schema( schema=[ opts.RadarIndicatorItem(name="场均得分", max_=32), opts.RadarIndicatorItem(name="场均篮板", max_=12), opts.RadarIndicatorItem(name="场均助攻", max_=12), opts.RadarIndicatorItem(name="场均抢断", max_=2), opts.RadarIndicatorItem(name="场均盖帽", max_=1.5), ], splitarea_opt=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1) ), textstyle_opts=opts.TextStyleOpts(color="#4587E7",#字体颜色 font_style='normal',##字体样式 可选:'normal','italic','oblique' font_weight='bold',#字体宽度 可选粗细 'normal','bold','bolder','lighter' font_family= 'monospace',#字体 font_size=15 #字体大小 ), #每个方向的小标题文字的格式配置 ) .add( series_name="德安德烈·艾顿", data=data1, color = 'yellow', linestyle_opts=opts.LineStyleOpts(color="yellow"), areastyle_opts = opts.AreaStyleOpts(opacity=0.2) ) .add( series_name="OG·阿奴诺比", data=data2, color = 'purple', linestyle_opts=opts.LineStyleOpts(color="purple"), areastyle_opts = opts.AreaStyleOpts(opacity=0.2) ) .set_series_opts(label_opts=opts.LabelOpts(is_show=True,color='white'))# 设置数据标签的格式 .set_global_opts( title_opts=opts.TitleOpts(title="基础雷达图",pos_left='3%',#大标题的位置可以为百分比 title_textstyle_opts=opts.TextStyleOpts(color='#4587E7',font_size=32,font_weight='bold') #大标题文字的格式配置 ), legend_opts=opts.LegendOpts(pos_left='left',#图例横向的位置,left表示在左侧,可以为百分比 pos_top='middle',#图例纵向的位置,middle表示中间位置,可以为百分比 orient='vertical'#图例方式的方式 horizontal为横向vertical为纵向 ) ) ) return c tl = Timeline() tl.add_schema( is_auto_play=False, #可选播放False为关闭 # play_interval=1000,#播放时间间隔,毫秒 ) for year in range(2017,2022+1): c = rader(year) # 雷达图 tl.add(c,f'{year}年') tl.render_notebook() 总结

雷达图是数据和信息可视化中一项非常重要的技术,也是我们必须掌握的技术之一。内容中可能会有一些不足和缺陷但也展示了学习的过程,在以后的工作中我们需要灵活地应用这些技术绘制各种雷达图,以更好地显示数据。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有