版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据可视化:Pyecharts课前回顾matplotlib绘图流程:创建画布→选定子图→绘制图形→添加图例→保存图形→显示图形figure:创建空白画布,一个画布中包含一个或多个坐标系(Axes),每个Axes都是一个绘图区域subplot:创建子图并选择绘图区域subplots:快速创建多子图环境,需要两个变量分别接收其他常用函数:title、label、tick、legend等常用绘图函数:plot、bar、pie等作图函数-plot:Pandas快速作图函数,通过参数可绘制各种图形matplotlib官网:目录010203Pyecharts简介Pyecharts初级应用Pyecharts高级应用01Pyecharts简介Pyecharts简介Python是一门富有表达力的语言,很适合用于数据处理,而Echarts可视化功能强大,那么,是否可以在Python中运用Echarts来进行可视化呈现呢?Echarts(EnterpriseCharts,即商业级数据图表),是一个由百度开源的数据可视化库,凭借着良好的交互性、精巧的图表设计,得到了众多开发者的认可。Echarts除了支持常规的折线图、柱状图、饼图等基本图形外,还支持树形图、地理图、3D图以及组合图形。Pyecharts是一个用于生成Echarts图表的类库,通过将Echarts与Python进行对接,实现在Python中直接使用数据生成Echarts图表的功能。Pyecharts图表类型Pyecharts支持的图表类型如下:基本图表基本图表直角坐标系图表树型图表Calendar:日历图Sankey:桑基图Bar:柱状图/条形图Tree:树图Funnel:漏斗图Sunburst:旭日图Boxplot:箱形图TreeMap:矩形树图Gauge:仪表盘ThemeRiver:主题河流图EffectScatter:涟漪特效散点图Graph:关系图WordCloud:词云图HeatMap:热力图Liquid:水球图Kline/Candlestick:K线图Parallel:平行坐标系Line:折线/面积图Pie:饼图PictorialBar:象形柱状图Polar:极坐标系Scatter:散点图Radar:雷达图Overlap:层叠多图Pyecharts图表类型Pyecharts支持的图表类型如下:地理图表3D图表组合图表HTML组件Geo:地理坐标系Bar3D:3D柱状图Grid:并行多图Component通用配置项Map:地图Line3D:3D折线图Page:顺序多图Table:表格Scatter3D:3D散点图Tab:选项卡多图Image:图像Surface3D:3D曲面图Timeline:时间线轮播多图Map3D-三维地图提示具体图形绘制方法可参考Pyecharts官方网站:02Pyecharts初级应用Pyecharts初级应用Pyecharts图表类引入:frompyecharts.chartsimport图表类名Pyecharts绘图流程:初始化具体类型图表使用add()方法添加数据及配置项使用render()生成图形(.html文件)使用科云内置函数show_html()在编辑器中展示图形(使用render_notebook()可在Jupyternotebook中展示图形)Pyecharts初级应用说明:甲公司1-5月份收入金额依次为45000元、38000元、54000元、55000元、48000元,成本金额依次为31500元、28500元、38880元、40700元、35520元。要求:使用Pyecharts绘制1-5月收入成本对比图(图表类型为柱状图)。示例1代码#初始化图表类型frompyecharts.chartsimportBarbar1=Bar()#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#生成html文件bar1.render('收入&成本对比.html')#展示图形show_html(bar1)Pyecharts初级应用说明:甲公司1-5月份收入金额依次为45000元、38000元、54000元、55000元、48000元,成本金额依次为31500元、28500元、38880元、40700元、35520元。要求:使用Pyecharts绘制1-5月收入成本对比图(图表类型为柱状图)。代码#链式调用frompyecharts.chartsimportBarbar1=(Bar().add_xaxis(['1月','2月','3月','4月','5月']).add_yaxis('收入',[45000,38000,54000,55000,48000]).add_yaxis('成本',[31500,28500,38880,40700,35520]))#展示图形show_html(bar1)03Pyecharts高级应用Pyecharts高级应用前面我们使用Pyecharts绘制了简单的柱状图,但是观察可以发现,绘制出来的图形没有标题、也没有工具栏,那么如何才能使我们的图形更加精巧?Pyecharts提供了丰富的配置项,包括全局配置项和系列配置项:set_global_opts():全局配置项,可配置标题、图例、坐标轴、工具箱等;set_series_opts():系列配置项,可配置图元样式、文字样式、标签样式、点线样式等。提示通过配置项,可以更好的设置个性化图表,为图表注入灵魂。Pyecharts配置项引入:frompyechartsimportoptionsasopts初始化配置常用参数说明widthstr,图表画布宽度(像素px),如:width=‘900px’heightstr,图表画布高度(像素px),如:height=‘500px’chart_idstr,图表ID,图表唯一标识theme图表主题初始化配置:init_opts=opts.InitOpts()定制主题pyecharts内置提供了多种不同风格的主题,只需引入主题类型就可以使用;主题类型引入:frompyecharts.globalsimportThemeType设置主题:theme=ThemeType.主题风格主题风格主题风格主题风格主题风格BUILTIN_THEMESINFOGRAPHICROMAWALDENCHALKLIGHTROMANTICWESTEROSDARKMACARONSSHINEWHITEESSOSPURPLE_PASSIONVINTAGEWONDERLAND初始化配置代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#初始化配置bar1=Bar(init_opts=opts.InitOpts(width='800px',height='450px',theme=ThemeType.DARK))#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#展示图形show_html(bar1)初始化配置常用全局配置项-标题配置项常用参数说明title主标题文本,支持使用\n换行subtitle副标题文本,支持使用\n换行pos_left标题组件离容器左侧的距离,可以是具体数值,也可以是百分比,还可以是'left','center','right',组件会根据相应的位置自动对齐pos_right标题组件离容器右侧的距离pos_top标题组件离容器上侧的距离,可以是具体数值,也可以是百分比,还可以是'top','middle','bottom',组件会根据相应的位置自动对齐pos_bottom标题组件离容器下侧的距离调用标题配置项:title_opts=opts.TitleOpts()常用全局配置项-标题配置项代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#初始化配置bar1=Bar(init_opts=opts.InitOpts(width='800px',height='450px',theme=ThemeType.DARK))#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#设置全局配置项bar1.set_global_opts(title_opts=opts.TitleOpts(title='收入&成本对比',subtitle='2020年1-5月'))#展示图形show_html(bar1)常用全局配置项-标题配置项常用全局配置项-图例配置项常用参数说明type_图例的类型,可选,默认'plain':代表普通图例,'scroll':代表可滚动翻页的图例。selected_mode图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成false关闭,也可设成'single'或者'multiple'使用单选或者多选模式。is_show是否显示图例组件,默认为Truepos_left/pos_right图例组件离容器左/右侧的距离pos_top/pos_bottom图例组件离容器上/下侧的距离orient图例列表的布局朝向,默认'horizontal'水平,可选:'vertical'垂直调用图例配置项:legend_opts=opts.LegendOpts()常用全局配置项-图例配置项代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#初始化配置bar1=Bar(init_opts=opts.InitOpts(width='800px',height='450px',theme=ThemeType.DARK))#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#设置全局配置项bar1.set_global_opts(title_opts=opts.TitleOpts(title='收入&成本对比',subtitle='2020年1-5月'),legend_opts=opts.LegendOpts(orient='vertical'))#展示图形show_html(bar1)常用全局配置项-图例配置项常用全局配置项-坐标轴配置项常用参数说明name坐标轴名称is_show是否显示坐标轴,默认为Trueis_inverse是否反向坐标轴,默认为Falsename_location坐标轴名称显示位置,可选:'start','middle','center','end',默认'end'name_gap坐标轴名称与轴线之间的距离,默认15name_rotate坐标轴名称旋转角度值,解决坐标轴名称过长的问题axislabel_opts坐标轴标签配置项。如:设置坐标轴标签旋转角度值,解决坐标轴标签名称过长的问题:axislabel_opts=opts.LabelOpts(rotate=-30)调用x轴配置项:xaxis_opts=opts.AxisOpts()调用y轴配置项:yaxis_opts=opts.AxisOpts()常用全局配置项-坐标轴配置项代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#初始化配置bar1=Bar(init_opts=opts.InitOpts(width='800px',height='450px',theme=ThemeType.DARK))#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#设置全局配置项bar1.set_global_opts(title_opts=opts.TitleOpts(title='收入&成本对比',subtitle='2020年1-5月'),legend_opts=opts.LegendOpts(orient='vertical'),xaxis_opts=opts.AxisOpts(name='月份'),yaxis_opts=opts.AxisOpts(name='金额(元)',name_location='center',name_gap=50))#展示图形show_html(bar1)常用全局配置项-坐标轴配置项常用全局配置项-工具箱配置常用参数说明is_show是否显示工具栏组件,默认Falseorient工具栏的的布局朝向,可选:默认'horizontal'水平,'vertical'垂直pos_left图例组件离容器左侧的距离pos_right图例组件离容器右侧的距离pos_top图例组件离容器上侧的距离pos_bottom图例组件离容器下侧的距离调用工具箱配置:toolbox_opts=opts.ToolboxOpts()常用全局配置项-工具箱配置示例2代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#初始化配置bar1=Bar(init_opts=opts.InitOpts(width='800px',height='450px',theme=ThemeType.DARK))#添加数据bar1.add_xaxis(['1月','2月','3月','4月','5月'])bar1.add_yaxis('收入',[45000,38000,54000,55000,48000])bar1.add_yaxis('成本',[31500,28500,38880,40700,35520])#设置全局配置项bar1.set_global_opts(title_opts=opts.TitleOpts(title='收入&成本对比',subtitle='2020年1-5月'),legend_opts=opts.LegendOpts(orient='vertical'),xaxis_opts=opts.AxisOpts(name='月份'),yaxis_opts=opts.AxisOpts(name='金额(元)',name_location='center',name_gap=50),toolbox_opts=opts.ToolboxOpts(is_show=True))#展示图形show_html(bar1)常用全局配置项-工具箱配置系列配置项设置系列配置项:set_series_opts(),常用配置如下:常用系列配置项说明标签配置项调用配置:label_opts=opts.LabelOpts(),可设置标签的字体、大小、位置、旋转角度等,常用参数:is_show(是否显示标签)线样式配置项调用配置:linestyle_opts=opts.LineStyleOpts(),可设置线条的宽度、透明度、颜色等,常用参数:width(调整线条宽度)区域填充样式配置项调用配置:areastyle_opts=opts.AreaStyleOpts(),可设置区域填充的透明度、颜色等,常用参数:opacity(设置透明度,0-1的数字,可通过该参数绘制面积图)数据格式转换Pyecharts本质上是将Echarts的配置项由Pythondict序列化为JSON格式,所以Pyecharts支持什么格式的数据类型取决于JSON支持什么数据类型,Python中对JSON的格式转换如下:提示将数据传入Pyecharts时,需要先将数据格式转换成上述Python原生的数据类型;数据分析一般需要使用Numpy、Pandas,Numpy中的int64、int32等数据类型并不继承自Python原生数据类型。PythonJSONint,floatnumberstrstringboolbooleandictobject(JSON对象)listarray数据类型转换:Series.tolist()财务指标可视化-数据准备要求:读取data.xlsx文件,根据“资产负债表项目”和“利润表项目”计算各期毛利率、营业净利率、权益净利率、总资产净利率,并筛选2022年相关指标。示例3代码#引入pandasimportpandasaspd#读取资产负债表项目df1=pd.read_excel('/webpython/course/d2633ec9ca5c4a288b73f97b4616d541/data.xlsx',converters={'年':str,'月':str})#读取利润表项目df2=pd.read_excel('/webpython/course/d2633ec9ca5c4a288b73f97b4616d541/data.xlsx',sheet_name=1,converters={'年':str,'月':str})#调用merge函数连接df1、df2df3=pd.merge(df1,df2)财务指标可视化-数据准备要求:读取data.xlsx文件,根据“资产负债表项目”和“利润表项目”计算各期毛利率、营业净利率、权益净利率、总资产净利率,并筛选2022年相关指标。示例3代码#指标计算df3['毛利率']=(df3['营业收入']-df3['营业成本'])/df3['营业收入']df3['营业净利率']=df3['净利润']/df3['营业收入']df3['权益净利率']=df3['净利润']/df3['所有者权益']df3['总资产净利率']=df3['净利润']/(df3['流动资产']+df3['非流动资产'])#创建df_2022(2022年财务指标统计)df_2022=df3.loc[df3['年']=='2022',['年','月','营业收入','毛利率','营业净利率','权益净利率','总资产净利率']]#show_table()展示df_2022show_table(df_2022)财务指标可视化-数据准备绘制饼图要求:使用Pyecharts根据2022年营业收入指标绘制饼图,要求展示玫瑰饼图。示例4代码frompyecharts.chartsimportPiefrompyechartsimportoptionsasoptsdf_sorted=df_2022.sort_values('营业收入',ascending=False)#按营业收入降序排序#数据转换:将DataFrame转换为Python数据类型列表x=df_sorted['月'].tolist()y1=df_sorted['营业收入'].tolist()data=[zforzinzip(x,y1)]#系列数据项,格式为[(key1,value1),(key2,value2)]#绘制饼图pie=Pie()pie.add('营业收入',data,rosetype='area')pie.set_global_opts(title_opts=opts.TitleOpts(title='2022营业收入'),legend_opts=opts.LegendOpts(pos_left='5%',pos_top='10%',orient='vertical'))show_html(pie)绘制饼图绘制面积图要求:使用Pyecharts根据2022年毛利率、营业净利率、权益净利率、总资产净利率指标绘制面积图。示例5代码#引入表格类型、配置项、主题类型frompyecharts.chartsimportLinefrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeType#数据转换:将DataFrame转换为Python数据类型列表x=df_2022['月'].tolist()y2=df_2022['毛利率'].tolist()y3=df_2022['营业净利率'].tolist()y4=df_2022['权益净利率'].tolist()y5=df_2022['总资产净利率'].tolist()#初始化配置line1=Line(init_opts=opts.InitOpts(width='900px',height='500px',theme=ThemeType.ESSOS))绘制面积图示例5代码#添加数据line1.add_xaxis(x)line1.add_yaxis('毛利率',y2,is_smooth=True)line1.add_yaxis('营业净利率',y3,is_smooth=True)line1.add_yaxis('权益净利率',y4,is_smooth=True)line1.add_yaxis('总资产净利率',y5,is_smooth=True)#设置全局配置项line1.set_global_opts(title_opts=opts.TitleOpts(title='2022年盈利能力指标统计',pos_left='center'),legend_opts=opts.LegendOpts(pos_left='12%',pos_top='5%',orient='vertical'),xaxis_opts=opts.AxisOpts(name='月份'),yaxis_opts=opts.AxisOpts(name='比率'),toolbox_opts=opts.ToolboxOpts(is_show=True))#设置系列配置项line1.set_series_opts(linestyle_opts=opts.LineStyleOpts(width=3),label_opts=opts.LabelOpts(is_show=False),areastyle_opts=opts.AreaStyleOpts(opacity=0.3))#设置图形填充透明度show_html(line1)绘制面积图Pyecharts组合图形Pyecharts也可以将多个图形组合在一起,常用组合方法如下:Grid:并行多图,在同一画布中显示多张图page:顺序多图,在同一网页中按顺序展示多图,常应用于绘制大数据看板Tab:选项卡多图,可以通过点击选项卡查看不同图形Timeline:时间线轮播多图,可以动态展示数据变化引入规则:frompyecharts.chartsimport
Grid,page,Tab,TimelinePyecharts组合图形组合图形绘图流程如下:引入Grid,page,Tab,Timeline及具体图表类型绘制单个图形初始化组合图形使用add()添加需要展示的图形,并设置显示位置展示组合图形注意使用Grid组合图形,第一个添加的图需为直角坐标系图表,即有x/y轴的图(如:折线图、柱状图),其他位置顺序任意。Pyecharts组合图形-GridGrid常用配置项:直角坐标系网格配置项:grid_opts=opts.GridOpts()常用参数说明is_show是否显示直角坐标系网格,默认Falsepos_leftgrid组件离容器左侧的距离pos_rightgrid组件离容器右侧的距离pos_topgrid组件离容器上侧的距离pos_bottomgrid组件离容器下侧的距离财务指标可视化-并行多图要求:使用Pyecharts绘制毛利率折线图、权益净利率&总资产净利率柱状图,并使用Grid将两个图形组合在一起(上下组合)。示例6代码#引入Gridfrompyecharts.chartsimportGrid#绘制毛利率折线图line2=Line()line2.add_xaxis(x)line2.add_yaxis('毛利率',y2)line2.set_global_opts(title_opts=opts.TitleOpts(title='2022年毛利率',pos_left='center'),legend_opts=opts.LegendOpts(pos_top='5%'))line2.set_series_opts(label_opts=opts.LabelOpts(is_show=False))财务指标可视化-并行多图示例6代码#绘制权益净利率&总资产净利率柱状图bar2=Bar()bar2.add_xaxis(x)bar2.add_yaxis('权益净利率',y4)bar2.add_yaxis('总资产净利率',y5)bar2.set_global_opts(title_opts=opts.TitleOpts(title='2022年权益净利率&总资产净利率',pos_left='center',pos_top='48%'),legend_opts=opts.LegendOpts(pos_top='53%'))bar2.set_series_opts(label_opts=opts.LabelOpts(is_show=False))#组合图形grid1=Grid()grid1.add(line2,grid_opts=opts.GridOpts(pos_bottom='60%'))grid1.add(bar2,grid_opts=opts.GridOpts(pos_top='60%'))#展示组合图形show_html(grid1)财务指标可视化-并行多图Pyecharts组合图形Page()常用参数:layout(布局配置项),即页面布局layout=Page.SimplePageLayout:简单页面布局,默认选项layout=Page.DraggablePageLayout:可拖动页面布局,子图可调节位置示例7代码#引入Pagefrompyecharts.chartsimportPage#顺序多图page1=Page(layout=Page.DraggablePageLayout)page1.add(line1,grid1,pie)#生成文件page1.render('2022年盈利能力指标.html')提示layout参数设置为Page.DraggablePageLayout,生成的html文件可调节图形位置,图形按照添加的顺序进行排列,顺序决定图形的层级,越靠前的图形,层级越低,反之越高,可根据可视化展示需求调整图形顺序。Pyecharts组合图形打开“2022年盈利能力指标.html”,根据可视化需求调整各图形的位置(可任意缩放大小),调节好后点击左上角SaveConfig,如下:
Pyecharts组合图形点击“SaveConfig”后会在此网页上下载一个chart_config.json配置文件,将该文件上传至平台【文件列表】后,按以下代码操作:
示例7代码#生成调整好的html文件page1.save_resize_html('2022年盈利能力指标.html',cfg_file='chart_config.json',dest='2022年盈利能力指标2.html');注意渲染配置json数据中是以chart_id来作为一个图形的唯一标识符,若需要复用调整好的渲染模板,则需要指定各图形的chart_id;chart_id不可与render_notebook()同时使用。chart_config.json文件是已经调整好布局的配置文件(确定各子图位置大小)财务指标可视化-顺序多图Pyecharts组合图形-TabTab:选项卡多图,仅需将图形逐一添加即可。示例8代码#引入Tabfrompyecharts.chartsimportTab#选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版分包工程质量验收合同3篇
- 全新产品研发与技术转让2024年度合同2篇
- 2024年度建筑工程施工许可合同详细内容3篇
- 2024年公路运输代理协议模板2篇
- 二零二四年人力资源外包服务协议2篇
- 信息安全评估与咨询合同(2024年版)2篇
- 2024年度国际能源合作开发合同
- 二零二四年度项目管理咨询与服务合同2篇
- 二零二四年度城市商业中心店面租赁合同3篇
- 2024年度高端装备制造业出口信贷合同
- 口腔急诊处理课件
- 部编版五年级道德与法治上册第8课《美丽文字 民族瑰宝》优质课件
- 白鹭学情分析方案五年级语文
- 四川省建设工程量清单计价定额
- 农民工子弟校家校共育问题探究
- 很全的化妆基础知识课件
- 初中物理人教版《质量》评课稿
- 氟化工年终总结5篇
- 《机器人及智能控制》课程教学大纲(本科)
- 小肽饲料专题
- 2022年高考日语真题全国卷(word版无答案)
评论
0/150
提交评论