目录
简介
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。对比与传统可视化matplotlib模块时,Pyecharts更适合用于商业应用,其特殊样式之多深受广大行业者的喜爱。
Pyecharts的官方文档:https://pyecharts.org/#/
安装过程
PyCharm的安装方法:
创建项目空间,左上角点击File ---> Settings ---> Project:xxx (Python Interpreter) 中下载Pyecharts包
Jupyter Notebook安装方法:
!pip install pyecharts
#默认安装最高版本
!pip install pyecharts==0.5.6
#安装指定版本
关于版本问题
pyecharts 分为 v0.5.x 和 v1.x 两个大版本,而新版本是不向下兼容的。1.x版本只支持python3.6+。并且在接下来我都讲以v1的版本展示可视化。
柱状图使用方法
Pyecharts 所有方法均支持链式调用。以下我采用的是链式调用。
(一)简单使用
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
df=pd.read_csv(r'C:\Users\86150\ccx\pyecharts\LPL_Data_analysis\lpl.csv')
#读取数据
mid=df.loc[df['位置']=='中单']
mid=mid.sort_values(by='KDA',ascending=False).head(10)
#取所有的中单选手并按KDA降序排列并取前十位选手
bar=(
Bar()
.add_xaxis(list(mid['选手']))
.add_yaxis('KDA',list(mid['KDA']))
)
bar.render_notebook()
#如果是在PyCharm中使用,图片展示应该为bar.render('./xxx.html'),保存在当前路径下的html文件
(二)高阶使用
MID=df.loc[df['位置']=='中单']
m_avgkill=MID.sort_values(by="场均击杀").tail(10)
#取所有的中单选手并按场均击杀默认升序排列并取后十位选手
bar=(
Bar()
.add_xaxis(list(m_avgkill['选手']))
.add_yaxis('场均击杀',list(m_avgkill['场均击杀']))
.add_yaxis('场均死亡',list(m_avgkill['场均死亡']))
.add_yaxis('场均助攻',list(m_avgkill['场均助攻']))
.add_yaxis('KDA',list(m_avgkill['KDA']))
.reversal_axis()
#xy轴翻转
.set_series_opts(label_opts=opts.LabelOpts(position="right",font_size=8))
#若是xy轴翻转,要添加参数position,避免标签位置杂乱,font_size是调整标签大小的参数
.set_global_opts(
title_opts=opts.TitleOpts(title='LPL常规赛中单场均击杀排行榜'),
yaxis_opts=opts.AxisOpts(name='选手'),
xaxis_opts=opts.AxisOpts(name='各项数据'),
toolbox_opts=opts.ToolboxOpts(is_show=True,
#工具箱配置项
feature={
"saveAsImage": {'background_color':'white'} ,
#保存图片
"dataZoom":{"yAxisIndex": "none"},
#区域放大与还原
"magicType":{"show": True, "type":["line","bar"]},
#折线图转换
}
),
# visualmap_opts=opts.VisualMapOpts(is_show=True) 视觉映射配置项
)
)
bar.render_notebook()
至于还有其他系统配置项的使用,可以参考官方文档,里面讲的很详细。
总结
以上就是Pyecharts柱状图常用的一些方法,个人感觉Pyecharts的图更好看一点,并且附带交互式。后期还出继续更新其他样式图的使用方法,喜欢的朋友可以点个赞或者关注一下!
另外,需要LPL春季赛职业选手数据的朋友可以私信我。