『数据可视化』基于Python的数据可视化工具

刘宇宙,现在一家创业型公司做技术总负责,做爬虫和数据处理相关工作,曾从事过卡系统研发、金融云计算服务系统研发,物联网方向大数据研发,著书一本,《Python3.5从零开始学》

如何做Python 的数据可视化?

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。主要用于数据可视化。

一、安装

pyecharts 兼容 Python2 和 Python3。目前版本为 0.1.4

pip install pyecharts
二、入门

首先开始来绘制你的第一个图表

frompyecharts importBarbar =Bar(我的第一个图表这里是副标题)bar.add(服装, [衬衫羊毛衫雪纺衫裤子高跟鞋袜子], [52036107590])bar.show_config()bar.render()

Tip:可以按右边的下载按钮将图片下载到本地

  • add()

    主要方法,用于添加图表的数据和设置各种配置项

  • show_config()

    扫描二维码关注公众号,回复: 1508424 查看本文章

    打印输出图表的所有配置项

  • render()

    默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r”e:my_first_chart.html”),文件用浏览器打开。

    默认的编码类型为 UTF-8,在 Python3 中是没什么问题的,Python3 对中文的支持好很多。但是在 Python2 中,编码的处理是个很头疼的问题,暂时没能找到完美的解决方法,目前只能通过文本编辑器自己进行二次编码,我用的是 Visual Studio Code,先通过 Gbk 编码重新打开,然后再用 UTF-8 重新保存,这样用浏览器打开的话就不会出现中文乱码问题了。

基本上所有的图表类型都是这样绘制的:

  1. chart_name = Type() 初始化具体类型图表。

  2. add() 添加数据及配置项。

  3. render() 生成 .html 文件。

三、图表类型

因篇幅原因,这里只给出了每种图表类型的示例(代码 + 生成图表),目的是为了引起读者的兴趣。详细参数的介绍请参考项目 README.md 文档

1 Bar(柱状图/条形图)
frompyecharts importBarbar =Bar(标记线和标记点示例)bar.add(商家A, attr, v1, mark_point=[average])bar.add(商家B, attr, v2, mark_line=[minmax])bar.render()
frompyecharts importBarbar =Bar(x 轴和 y 轴交换)bar.add(商家A, attr, v1)bar.add(商家B, attr, v2, is_convert=True)bar.render()

2 EffectScatter(带有涟漪特效动画的散点图)
frompyecharts importEffectScatterv1 =[102030405060]v2 =[252015106033]es =EffectScatter(动态散点图示例)es.add(effectScatter, v1, v2)es.render()
es =EffectScatter(动态散点图各种图形示例)es.add(“”, [10], [10], symbol_size=20effect_scale=3.5effect_period=3symbol=pin)es.add(“”, [20], [20], symbol_size=12effect_scale=4.5effect_period=4,symbol=rect)es.add(“”, [30], [30], symbol_size=30effect_scale=5.5effect_period=5,symbol=roundRect)es.add(“”, [40], [40], symbol_size=10effect_scale=6.5effect_brushtype=fill,symbol=diamond)es.add(“”, [50], [50], symbol_size=16effect_scale=5.5effect_period=3,symbol=arrow)es.add(“”, [60], [60], symbol_size=6effect_scale=2.5effect_period=3,symbol=triangle)es.render()

3 Funnel(漏斗图)
frompyecharts importFunnelattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]value =[20406080100120]funnel =Funnel(漏斗图示例)funnel.add(商品, attr, value, is_label_show=Truelabel_pos=insidelabel_text_color=#fff)funnel.render()
4 Gauge(仪表盘)
frompyecharts importGaugegauge =Gauge(仪表盘示例)gauge.add(业务指标完成率66.66)gauge.show_config()gauge.render()

5 Geo(地理坐标系)
frompyecharts importGeodata =[ (海门9),(鄂尔多斯12),(招远12),(舟山12),(齐齐哈尔14),(盐城15), (赤峰16),(青岛18),(乳山18),(金昌19),(泉州21),(莱西21), (日照21),(胶南22),(南通23),(拉萨24),(云浮24),(梅州25)]geo =Geo(全国主要城市空气质量data from pm2.5title_color=#ffftitle_pos=center,width=1200height=600background_color=#404a59)attr, value =geo.cast(data)geo.add(“”, attr, value, visual_range=[0200], visual_text_color=#fffsymbol_size=15is_visualmap=True)geo.show_config()geo.render()

frompyecharts importGeodata =[(海门9), (鄂尔多斯12), (招远12), (舟山12), (齐齐哈尔14), (盐城15)]geo =Geo(全国主要城市空气质量data from pm2.5title_color=#ffftitle_pos=centerwidth=1200height=600background_color=#404a59)attr, value =geo.cast(data)geo.add(“”, attr, value, type=effectScatteris_random=Trueeffect_scale=5)geo.show_config()geo.render()

6 Graph(关系图)
frompyecharts importGraphnodes =[{name结点1symbolSize10}, {name结点2symbolSize20}, {name结点3symbolSize30}, {name结点4symbolSize40}, {name结点5symbolSize50}, {name结点6symbolSize40}, {name结点7symbolSize30}, {name结点8symbolSize20}]links =[]forinnodes: forinnodes: links.append({source: i.get(name), target: j.get(name)})graph =Graph(关系图-环形布局示例)graph.add(“”, nodes, links, is_label_show=Truerepulsion=8000layout=circularlabel_text_color=None)graph.show_config()graph.render()

frompyecharts importGraphimportjsonwithopen(..jsonweibo.jsonrencoding=utf-8asf: j =json.load(f) nodes, links, categories, cont, mid, userl =jgraph =Graph(微博转发关系图width=1200height=600)graph.add(“”, nodes, links, categories, label_pos=rightrepulsion=50is_legend_show=Falseline_curve=0.2label_text_color=None)graph.show_config()graph.render()

7 Line(折线/面积图)
frompyecharts importLineattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[520361010100]v2 =[556016201580]line =Line(折线图示例)line.add(商家A, attr, v1, mark_point=[average])line.add(商家B, attr, v2, is_smooth=Truemark_line=[maxaverage])line.show_config()line.render()
line =Line(折线图-阶梯图示例)line.add(商家A, attr, v1, is_step=Trueis_label_show=True)line.show_config()line.render()

line =Line(折线图-面积图示例)line.add(商家A, attr, v1, is_fill=Trueline_opacity=0.2area_opacity=0.4symbol=None)line.add(商家B, attr, v2, is_fill=Truearea_color=#000area_opacity=0.3is_smooth=True)line.show_config()line.render()

8 Liquid(水球图)
frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.6])liquid.show_config()liquid.render()

frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.60.50.40.3], is_liquid_outline_show=False)liquid.show_config()liquid.render()

frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.60.50.40.3], is_liquid_animation=Falseshape=diamond)liquid.show_config()liquid.render()

9 Map(地图)
frompyecharts importMapvalue =[15510667833801905349.6]attr =[福建山东北京上海甘肃新疆河南广西西藏]map=Map(Map 结合 VisualMap 示例width=1200height=600)map.add(“”, attr, value, maptype=chinais_visualmap=Truevisual_text_color=#000)map.show_config()map.render()

frompyecharts importMapvalue =[201902537765]attr =[汕头市汕尾市揭阳市阳江市肇庆市]map=Map(广东地图示例width=1200height=600)map.add(“”, attr, value, maptype=广东is_visualmap=Truevisual_text_color=#000)map.show_config()map.render()

10 Parallel(平行坐标系)
frompyecharts importParallelc_schema =[ {dim0namedata}, {dim1nameAQI}, {dim2namePM2.5}, {dim3namePM10}, {dim4nameCO}, {dim5nameNO2}, {dim6nameCO2}, {dim7name等级typecategorydata: [轻度污染中度污染重度污染严重污染]}]data =[ [191451250.823423], [26527780.864529], [38360841.097327], [4109811211.286851轻度污染], [5106771141.075551轻度污染], [6109811211.286851轻度污染], [7106771141.075551轻度污染], [88965780.865126], [95333470.645017], [108055801.017524], [11117811241.034524轻度污染], [1299711421.16242], [1395691301.287450], [14116871311.478440轻度污染]]parallel =Parallel(平行坐标系-用户自定义指示器)parallel.config(c_schema=c_schema)parallel.add(parallel, data)parallel.show_config()parallel.render()

11 Pie(饼图)
frompyecharts importPieattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[111213101010]pie =Pie(饼图示例)pie.add(“”, attr, v1, is_label_show=True)pie.show_config()pie.render()

frompyecharts importPieattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[111213101010]v2 =[192132202033]pie =Pie(饼图-玫瑰图示例title_pos=centerwidth=900)pie.add(商品A, attr, v1, center=[2550], is_random=Trueradius=[3075], rosetype=radius)pie.add(商品B, attr, v2, center=[7550], is_random=Trueradius=[3075], rosetype=areais_legend_show=Falseis_label_show=True)pie.show_config() pie.render()

12 Polar(极坐标系)
frompyecharts importPolarradius =[周一周二周三周四周五周六周日]polar =Polar(极坐标系-堆叠柱状图示例width=1200height=600)polar.add(A, [1234351], radius_data=radius, type=barRadiusis_stack=True)polar.add(B, [2461231], radius_data=radius, type=barRadiusis_stack=True)polar.add(C, [1234125], radius_data=radius, type=barRadiusis_stack=True)polar.show_config()polar.render()

frompyecharts importPolarradius =[周一周二周三周四周五周六周日]polar =Polar(极坐标系-堆叠柱状图示例width=1200height=600)polar.add(“”, [1234351], radius_data=radius, type=barAngleis_stack=True)polar.add(“”, [2461231], radius_data=radius, type=barAngleis_stack=True)polar.add(“”, [1234125], radius_data=radius, type=barAngleis_stack=True)polar.show_config()polar.render()

13 Radar(雷达图)
frompyecharts importRadarschema =[ (销售6500), (管理16000), (信息技术30000), (客服38000), (研发52000), (市场25000)]v1 =[[43001000028000350005000019000]]v2 =[[50001400028000310004200021000]]radar =Radar()radar.config(schema)radar.add(预算分配, v1, is_splitline=Trueis_axisline_show=True)radar.add(实际开销, v2, label_color=[#4e79a7], is_area_show=False)radar.show_config()radar.render()

value_bj =[ [559560.461861], [2511210.653492], [567630.31453], [337290.331664]]value_sh =[ [91451250.8234231], [6527780.8645292], [8360841.0973273], [109811211.2868514]]c_schema=[{nameAQImax300min5}, {namePM2.5max250min20}, {namePM10max300min5}, {nameCOmax5}, {nameNO2max200}, {nameSO2max100}]radar =Radar()radar.config(c_schema=c_schema, shape=circle)radar.add(北京, value_bj, item_color=#f9713csymbol=None)radar.add(上海, value_sh, item_color=#b3e4a1symbol=None)radar.show_config()radar.render()

14 Scatter(散点图)
frompyecharts importScatterv1 =[102030405060]v2 =[102030405060]scatter =Scatter(散点图示例)scatter.add(A, v1, v2)scatter.add(B, v1[::-1], v2)scatter.show_config()scatter.render()

散点打印Pyecharts字体。

frompyecharts importScatterscatter =Scatter(散点图示例)v1, v2 =scatter.draw(../images/pyecharts-0.png)scatter.add(pyecharts, v1, v2, is_random=True)scatter.show_config()scatter.render()

15 WordCloud(词云图)
frompyecharts importWordCloudname =[Sam S ClubMacysAmy SchumerJurassic WorldCharter CommunicationsChick Fil APlanet FitnessPitch PerfectExpressHomeJohnny DeppLena DunhamLewis HamiltonKXANMary Ellen MarkFarrah AbrahamRita OraSerena WilliamsNCAA baseball tournamentPoint Break]value =[1000061814386405524672244189814841112965847582555550462366360282273265]wordcloud =WordCloud(width=1300height=620)wordcloud.add(“”, name, value, word_size_range=[20100])wordcloud.show_config()wordcloud.render()

wordcloud =WordCloud(width=1300height=620)wordcloud.add(“”, name, value, word_size_range=[30100], shape=diamond)wordcloud.show_config()wordcloud.render()

五、用户自定义

用户还可以自定义结合 Line/Bar 图表

需使用 get_series() 和 custom() 方法

get_series()”“”获取图表的 series 数据 “”“
custom(series)”’追加自定义图表类型 ”’
  • series -> dict

    追加图表类型的 series 数据

先用 get_series() 获取数据,再使用 custom() 将图表结合在一起

frompyecharts importBar, Lineattr =[ABCDEF]v1 =[102030405060]v2 =[152535455565]v3 =[382858487868]bar =Bar(Line - Bar 示例)bar.add(bar, attr, v1)line =Line()line.add(line, v2, v3)bar.custom(line.get_series())bar.show_config()bar.render()

六、更多示例

用极坐标系画出一个爱心

importmathfrompyecharts importPolardata =[]forinrange(101): theta =/100*360=5*(1+math.sin(theta /180*math.pi)) data.append([r, theta])hour =[i forinrange(125)]polar =Polar(极坐标系示例width=1200height=600)polar.add(Love, data, angle_data=hour, boundary_gap=False,start_angle=0)polar.show_config()polar.render()

用极坐标系画出一朵小花

importmathfrompyecharts importPolardata =[]forinrange(361): t =/180*math.pi r =math.sin(2*t) *math.cos(2*t) data.append([r, i])polar =Polar(极坐标系示例width=1200height=600)polar.add(Flower, data, start_angle=0symbol=Noneaxis_range=[0None])polar.show_config()polar.render()

还可以给小花涂上颜色

importmathfrompyecharts importPolardata =[]forinrange(361): t =/180*math.pi r =math.sin(2*t) *math.cos(2*t) data.append([r, i])polar =Polar(极坐标系示例width=1200height=600)polar.add(Color-Flower, data, start_angle=0symbol=Noneaxis_range=[0None], area_color=#f71f24area_opacity=0.6)polar.show_config()polar.render()

用散点图画出一个爱心

frompyecharts importScatterscatter =Scatter(散点图示例width=800height=480)v1 ,v2 =scatter.draw(../images/love.png)scatter.add(Love, v1, v2)scatter.render()

用散点图画出一个火辣的 Bra

frompyecharts importScatterscatter =Scatter(散点图示例width=1000height=480)v1 ,v2 =scatter.draw(../images/cup.png)scatter.add(Cup, v1, v2)scatter.render()

某地最低温和最高气温折线图

frompyecharts importLineattr =[周一周二周三周四周五周六周日, ]line =Line(折线图示例)line.add(最高气温, attr, [11111513121310], mark_point=[maxmin], mark_line=[average])line.add(最低气温, attr, [1-225320], mark_point=[maxmin], mark_line=[average], yaxis_formatter=°C)line.show_config()line.render()

饼图嵌套

frompyecharts importPiepie =Pie(饼图示例title_pos=centerwidth=1000height=600)pie.add(“”, [ABCDEF], [335321234135251148], radius=[4055],is_label_show=True)pie.add(“”, [HIJ], [335679204], radius=[030], legend_orient=verticallegend_pos=left)pie.show_config()pie.render()

饼图再嵌套

importrandomfrompyecharts importPieattr =[ABCDEF]pie =Pie(饼图示例width=1000height=600)pie.add(“”, attr, [random.randint(0100forinrange(6)], radius=[5055], center=[2550],is_random=True)pie.add(“”, attr, [random.randint(20100forinrange(6)], radius=[045], center=[2550],rosetype=area)pie.add(“”, attr, [random.randint(0100forinrange(6)], radius=[5055], center=[6550],is_random=True)pie.add(“”, attr, [random.randint(20100forinrange(6)], radius=[045], center=[6550],rosetype=radius)pie.show_config()pie.render()

某地的降水量和蒸发量柱状图

frompyecharts importBarattr =[{}月.format(i) forinrange(113)]v1 =[2.04.97.023.225.676.7135.6162.232.620.06.43.3]v2 =[2.65.99.026.428.770.7175.6182.248.718.86.02.3]bar =Bar(柱状图示例)bar.add(蒸发量, attr, v1, mark_line=[average], mark_point=[maxmin])bar.add(降水量, attr, v2, mark_line=[average], mark_point=[maxmin])bar.show_config()bar.render()

各类电影中”好片”所占的比例

frompyecharts importPiepie =Pie(各类电影中”好片”所占的比例数据来着豆瓣title_pos=center)pie.add(“”, [剧情“”], [2575], center=[1030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None, )pie.add(“”, [奇幻“”], [2476], center=[3030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=Nonelegend_pos=left)pie.add(“”, [爱情“”], [1486], center=[5030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [惊悚“”], [1189], center=[7030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [冒险“”], [2773], center=[9030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [动作“”], [1585], center=[1070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [喜剧“”], [5446], center=[3070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [科幻“”], [2674], center=[5070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [悬疑“”], [2575], center=[7070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [犯罪“”], [2872], center=[9070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=Noneis_legend_show=Truelegend_top=center)pie.show_config()pie.render()

用极坐标系画出一个蜗牛壳

importmathfrompyecharts importPolardata =[]forinrange(5): forinrange(101): theta =/100*360alpha =*360+theta r =math.pow(math.e, 0.003*alpha) data.append([r, theta])polar =Polar(极坐标系示例)polar.add(“”, data, symbol_size=0symbol=circlestart_angle=-25is_radiusaxis_show=Falsearea_color=#f3c5b3area_opacity=0.5is_angleaxis_show=False)polar.show_config()polar.render()

刘宇宙,现在一家创业型公司做技术总负责,做爬虫和数据处理相关工作,曾从事过卡系统研发、金融云计算服务系统研发,物联网方向大数据研发,著书一本,《Python3.5从零开始学》

如何做Python 的数据可视化?

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。主要用于数据可视化。

一、安装

pyecharts 兼容 Python2 和 Python3。目前版本为 0.1.4

pip install pyecharts
二、入门

首先开始来绘制你的第一个图表

frompyecharts importBarbar =Bar(我的第一个图表这里是副标题)bar.add(服装, [衬衫羊毛衫雪纺衫裤子高跟鞋袜子], [52036107590])bar.show_config()bar.render()

Tip:可以按右边的下载按钮将图片下载到本地

  • add()

    主要方法,用于添加图表的数据和设置各种配置项

  • show_config()

    打印输出图表的所有配置项

  • render()

    默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r”e:my_first_chart.html”),文件用浏览器打开。

    默认的编码类型为 UTF-8,在 Python3 中是没什么问题的,Python3 对中文的支持好很多。但是在 Python2 中,编码的处理是个很头疼的问题,暂时没能找到完美的解决方法,目前只能通过文本编辑器自己进行二次编码,我用的是 Visual Studio Code,先通过 Gbk 编码重新打开,然后再用 UTF-8 重新保存,这样用浏览器打开的话就不会出现中文乱码问题了。

基本上所有的图表类型都是这样绘制的:

  1. chart_name = Type() 初始化具体类型图表。

  2. add() 添加数据及配置项。

  3. render() 生成 .html 文件。

三、图表类型

因篇幅原因,这里只给出了每种图表类型的示例(代码 + 生成图表),目的是为了引起读者的兴趣。详细参数的介绍请参考项目 README.md 文档

1 Bar(柱状图/条形图)
frompyecharts importBarbar =Bar(标记线和标记点示例)bar.add(商家A, attr, v1, mark_point=[average])bar.add(商家B, attr, v2, mark_line=[minmax])bar.render()
frompyecharts importBarbar =Bar(x 轴和 y 轴交换)bar.add(商家A, attr, v1)bar.add(商家B, attr, v2, is_convert=True)bar.render()

2 EffectScatter(带有涟漪特效动画的散点图)
frompyecharts importEffectScatterv1 =[102030405060]v2 =[252015106033]es =EffectScatter(动态散点图示例)es.add(effectScatter, v1, v2)es.render()
es =EffectScatter(动态散点图各种图形示例)es.add(“”, [10], [10], symbol_size=20effect_scale=3.5effect_period=3symbol=pin)es.add(“”, [20], [20], symbol_size=12effect_scale=4.5effect_period=4,symbol=rect)es.add(“”, [30], [30], symbol_size=30effect_scale=5.5effect_period=5,symbol=roundRect)es.add(“”, [40], [40], symbol_size=10effect_scale=6.5effect_brushtype=fill,symbol=diamond)es.add(“”, [50], [50], symbol_size=16effect_scale=5.5effect_period=3,symbol=arrow)es.add(“”, [60], [60], symbol_size=6effect_scale=2.5effect_period=3,symbol=triangle)es.render()

3 Funnel(漏斗图)
frompyecharts importFunnelattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]value =[20406080100120]funnel =Funnel(漏斗图示例)funnel.add(商品, attr, value, is_label_show=Truelabel_pos=insidelabel_text_color=#fff)funnel.render()
4 Gauge(仪表盘)
frompyecharts importGaugegauge =Gauge(仪表盘示例)gauge.add(业务指标完成率66.66)gauge.show_config()gauge.render()

5 Geo(地理坐标系)
frompyecharts importGeodata =[ (海门9),(鄂尔多斯12),(招远12),(舟山12),(齐齐哈尔14),(盐城15), (赤峰16),(青岛18),(乳山18),(金昌19),(泉州21),(莱西21), (日照21),(胶南22),(南通23),(拉萨24),(云浮24),(梅州25)]geo =Geo(全国主要城市空气质量data from pm2.5title_color=#ffftitle_pos=center,width=1200height=600background_color=#404a59)attr, value =geo.cast(data)geo.add(“”, attr, value, visual_range=[0200], visual_text_color=#fffsymbol_size=15is_visualmap=True)geo.show_config()geo.render()

frompyecharts importGeodata =[(海门9), (鄂尔多斯12), (招远12), (舟山12), (齐齐哈尔14), (盐城15)]geo =Geo(全国主要城市空气质量data from pm2.5title_color=#ffftitle_pos=centerwidth=1200height=600background_color=#404a59)attr, value =geo.cast(data)geo.add(“”, attr, value, type=effectScatteris_random=Trueeffect_scale=5)geo.show_config()geo.render()

6 Graph(关系图)
frompyecharts importGraphnodes =[{name结点1symbolSize10}, {name结点2symbolSize20}, {name结点3symbolSize30}, {name结点4symbolSize40}, {name结点5symbolSize50}, {name结点6symbolSize40}, {name结点7symbolSize30}, {name结点8symbolSize20}]links =[]forinnodes: forinnodes: links.append({source: i.get(name), target: j.get(name)})graph =Graph(关系图-环形布局示例)graph.add(“”, nodes, links, is_label_show=Truerepulsion=8000layout=circularlabel_text_color=None)graph.show_config()graph.render()

frompyecharts importGraphimportjsonwithopen(..jsonweibo.jsonrencoding=utf-8asf: j =json.load(f) nodes, links, categories, cont, mid, userl =jgraph =Graph(微博转发关系图width=1200height=600)graph.add(“”, nodes, links, categories, label_pos=rightrepulsion=50is_legend_show=Falseline_curve=0.2label_text_color=None)graph.show_config()graph.render()

7 Line(折线/面积图)
frompyecharts importLineattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[520361010100]v2 =[556016201580]line =Line(折线图示例)line.add(商家A, attr, v1, mark_point=[average])line.add(商家B, attr, v2, is_smooth=Truemark_line=[maxaverage])line.show_config()line.render()
line =Line(折线图-阶梯图示例)line.add(商家A, attr, v1, is_step=Trueis_label_show=True)line.show_config()line.render()

line =Line(折线图-面积图示例)line.add(商家A, attr, v1, is_fill=Trueline_opacity=0.2area_opacity=0.4symbol=None)line.add(商家B, attr, v2, is_fill=Truearea_color=#000area_opacity=0.3is_smooth=True)line.show_config()line.render()

8 Liquid(水球图)
frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.6])liquid.show_config()liquid.render()

frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.60.50.40.3], is_liquid_outline_show=False)liquid.show_config()liquid.render()

frompyecharts importLiquidliquid =Liquid(水球图示例)liquid.add(Liquid, [0.60.50.40.3], is_liquid_animation=Falseshape=diamond)liquid.show_config()liquid.render()

9 Map(地图)
frompyecharts importMapvalue =[15510667833801905349.6]attr =[福建山东北京上海甘肃新疆河南广西西藏]map=Map(Map 结合 VisualMap 示例width=1200height=600)map.add(“”, attr, value, maptype=chinais_visualmap=Truevisual_text_color=#000)map.show_config()map.render()

frompyecharts importMapvalue =[201902537765]attr =[汕头市汕尾市揭阳市阳江市肇庆市]map=Map(广东地图示例width=1200height=600)map.add(“”, attr, value, maptype=广东is_visualmap=Truevisual_text_color=#000)map.show_config()map.render()

10 Parallel(平行坐标系)
frompyecharts importParallelc_schema =[ {dim0namedata}, {dim1nameAQI}, {dim2namePM2.5}, {dim3namePM10}, {dim4nameCO}, {dim5nameNO2}, {dim6nameCO2}, {dim7name等级typecategorydata: [轻度污染中度污染重度污染严重污染]}]data =[ [191451250.823423], [26527780.864529], [38360841.097327], [4109811211.286851轻度污染], [5106771141.075551轻度污染], [6109811211.286851轻度污染], [7106771141.075551轻度污染], [88965780.865126], [95333470.645017], [108055801.017524], [11117811241.034524轻度污染], [1299711421.16242], [1395691301.287450], [14116871311.478440轻度污染]]parallel =Parallel(平行坐标系-用户自定义指示器)parallel.config(c_schema=c_schema)parallel.add(parallel, data)parallel.show_config()parallel.render()

11 Pie(饼图)
frompyecharts importPieattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[111213101010]pie =Pie(饼图示例)pie.add(“”, attr, v1, is_label_show=True)pie.show_config()pie.render()

frompyecharts importPieattr =[衬衫羊毛衫雪纺衫裤子高跟鞋袜子]v1 =[111213101010]v2 =[192132202033]pie =Pie(饼图-玫瑰图示例title_pos=centerwidth=900)pie.add(商品A, attr, v1, center=[2550], is_random=Trueradius=[3075], rosetype=radius)pie.add(商品B, attr, v2, center=[7550], is_random=Trueradius=[3075], rosetype=areais_legend_show=Falseis_label_show=True)pie.show_config() pie.render()

12 Polar(极坐标系)
frompyecharts importPolarradius =[周一周二周三周四周五周六周日]polar =Polar(极坐标系-堆叠柱状图示例width=1200height=600)polar.add(A, [1234351], radius_data=radius, type=barRadiusis_stack=True)polar.add(B, [2461231], radius_data=radius, type=barRadiusis_stack=True)polar.add(C, [1234125], radius_data=radius, type=barRadiusis_stack=True)polar.show_config()polar.render()

frompyecharts importPolarradius =[周一周二周三周四周五周六周日]polar =Polar(极坐标系-堆叠柱状图示例width=1200height=600)polar.add(“”, [1234351], radius_data=radius, type=barAngleis_stack=True)polar.add(“”, [2461231], radius_data=radius, type=barAngleis_stack=True)polar.add(“”, [1234125], radius_data=radius, type=barAngleis_stack=True)polar.show_config()polar.render()

13 Radar(雷达图)
frompyecharts importRadarschema =[ (销售6500), (管理16000), (信息技术30000), (客服38000), (研发52000), (市场25000)]v1 =[[43001000028000350005000019000]]v2 =[[50001400028000310004200021000]]radar =Radar()radar.config(schema)radar.add(预算分配, v1, is_splitline=Trueis_axisline_show=True)radar.add(实际开销, v2, label_color=[#4e79a7], is_area_show=False)radar.show_config()radar.render()

value_bj =[ [559560.461861], [2511210.653492], [567630.31453], [337290.331664]]value_sh =[ [91451250.8234231], [6527780.8645292], [8360841.0973273], [109811211.2868514]]c_schema=[{nameAQImax300min5}, {namePM2.5max250min20}, {namePM10max300min5}, {nameCOmax5}, {nameNO2max200}, {nameSO2max100}]radar =Radar()radar.config(c_schema=c_schema, shape=circle)radar.add(北京, value_bj, item_color=#f9713csymbol=None)radar.add(上海, value_sh, item_color=#b3e4a1symbol=None)radar.show_config()radar.render()

14 Scatter(散点图)
frompyecharts importScatterv1 =[102030405060]v2 =[102030405060]scatter =Scatter(散点图示例)scatter.add(A, v1, v2)scatter.add(B, v1[::-1], v2)scatter.show_config()scatter.render()

散点打印Pyecharts字体。

frompyecharts importScatterscatter =Scatter(散点图示例)v1, v2 =scatter.draw(../images/pyecharts-0.png)scatter.add(pyecharts, v1, v2, is_random=True)scatter.show_config()scatter.render()

15 WordCloud(词云图)
frompyecharts importWordCloudname =[Sam S ClubMacysAmy SchumerJurassic WorldCharter CommunicationsChick Fil APlanet FitnessPitch PerfectExpressHomeJohnny DeppLena DunhamLewis HamiltonKXANMary Ellen MarkFarrah AbrahamRita OraSerena WilliamsNCAA baseball tournamentPoint Break]value =[1000061814386405524672244189814841112965847582555550462366360282273265]wordcloud =WordCloud(width=1300height=620)wordcloud.add(“”, name, value, word_size_range=[20100])wordcloud.show_config()wordcloud.render()

wordcloud =WordCloud(width=1300height=620)wordcloud.add(“”, name, value, word_size_range=[30100], shape=diamond)wordcloud.show_config()wordcloud.render()

五、用户自定义

用户还可以自定义结合 Line/Bar 图表

需使用 get_series() 和 custom() 方法

get_series()”“”获取图表的 series 数据 “”“
custom(series)”’追加自定义图表类型 ”’
  • series -> dict

    追加图表类型的 series 数据

先用 get_series() 获取数据,再使用 custom() 将图表结合在一起

frompyecharts importBar, Lineattr =[ABCDEF]v1 =[102030405060]v2 =[152535455565]v3 =[382858487868]bar =Bar(Line - Bar 示例)bar.add(bar, attr, v1)line =Line()line.add(line, v2, v3)bar.custom(line.get_series())bar.show_config()bar.render()

六、更多示例

用极坐标系画出一个爱心

importmathfrompyecharts importPolardata =[]forinrange(101): theta =/100*360=5*(1+math.sin(theta /180*math.pi)) data.append([r, theta])hour =[i forinrange(125)]polar =Polar(极坐标系示例width=1200height=600)polar.add(Love, data, angle_data=hour, boundary_gap=False,start_angle=0)polar.show_config()polar.render()

用极坐标系画出一朵小花

importmathfrompyecharts importPolardata =[]forinrange(361): t =/180*math.pi r =math.sin(2*t) *math.cos(2*t) data.append([r, i])polar =Polar(极坐标系示例width=1200height=600)polar.add(Flower, data, start_angle=0symbol=Noneaxis_range=[0None])polar.show_config()polar.render()

还可以给小花涂上颜色

importmathfrompyecharts importPolardata =[]forinrange(361): t =/180*math.pi r =math.sin(2*t) *math.cos(2*t) data.append([r, i])polar =Polar(极坐标系示例width=1200height=600)polar.add(Color-Flower, data, start_angle=0symbol=Noneaxis_range=[0None], area_color=#f71f24area_opacity=0.6)polar.show_config()polar.render()

用散点图画出一个爱心

frompyecharts importScatterscatter =Scatter(散点图示例width=800height=480)v1 ,v2 =scatter.draw(../images/love.png)scatter.add(Love, v1, v2)scatter.render()

用散点图画出一个火辣的 Bra

frompyecharts importScatterscatter =Scatter(散点图示例width=1000height=480)v1 ,v2 =scatter.draw(../images/cup.png)scatter.add(Cup, v1, v2)scatter.render()

某地最低温和最高气温折线图

frompyecharts importLineattr =[周一周二周三周四周五周六周日, ]line =Line(折线图示例)line.add(最高气温, attr, [11111513121310], mark_point=[maxmin], mark_line=[average])line.add(最低气温, attr, [1-225320], mark_point=[maxmin], mark_line=[average], yaxis_formatter=°C)line.show_config()line.render()

饼图嵌套

frompyecharts importPiepie =Pie(饼图示例title_pos=centerwidth=1000height=600)pie.add(“”, [ABCDEF], [335321234135251148], radius=[4055],is_label_show=True)pie.add(“”, [HIJ], [335679204], radius=[030], legend_orient=verticallegend_pos=left)pie.show_config()pie.render()

饼图再嵌套

importrandomfrompyecharts importPieattr =[ABCDEF]pie =Pie(饼图示例width=1000height=600)pie.add(“”, attr, [random.randint(0100forinrange(6)], radius=[5055], center=[2550],is_random=True)pie.add(“”, attr, [random.randint(20100forinrange(6)], radius=[045], center=[2550],rosetype=area)pie.add(“”, attr, [random.randint(0100forinrange(6)], radius=[5055], center=[6550],is_random=True)pie.add(“”, attr, [random.randint(20100forinrange(6)], radius=[045], center=[6550],rosetype=radius)pie.show_config()pie.render()

某地的降水量和蒸发量柱状图

frompyecharts importBarattr =[{}月.format(i) forinrange(113)]v1 =[2.04.97.023.225.676.7135.6162.232.620.06.43.3]v2 =[2.65.99.026.428.770.7175.6182.248.718.86.02.3]bar =Bar(柱状图示例)bar.add(蒸发量, attr, v1, mark_line=[average], mark_point=[maxmin])bar.add(降水量, attr, v2, mark_line=[average], mark_point=[maxmin])bar.show_config()bar.render()

各类电影中”好片”所占的比例

frompyecharts importPiepie =Pie(各类电影中”好片”所占的比例数据来着豆瓣title_pos=center)pie.add(“”, [剧情“”], [2575], center=[1030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None, )pie.add(“”, [奇幻“”], [2476], center=[3030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=Nonelegend_pos=left)pie.add(“”, [爱情“”], [1486], center=[5030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [惊悚“”], [1189], center=[7030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [冒险“”], [2773], center=[9030], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [动作“”], [1585], center=[1070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [喜剧“”], [5446], center=[3070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [科幻“”], [2674], center=[5070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [悬疑“”], [2575], center=[7070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=None)pie.add(“”, [犯罪“”], [2872], center=[9070], radius=[1824], label_pos=centeris_label_show=Truelabel_text_color=Noneis_legend_show=Truelegend_top=center)pie.show_config()pie.render()

用极坐标系画出一个蜗牛壳

importmathfrompyecharts importPolardata =[]forinrange(5): forinrange(101): theta =/100*360alpha =*360+theta r =math.pow(math.e, 0.003*alpha) data.append([r, theta])polar =Polar(极坐标系示例)polar.add(“”, data, symbol_size=0symbol=circlestart_angle=-25is_radiusaxis_show=Falsearea_color=#f3c5b3area_opacity=0.5is_angleaxis_show=False)polar.show_config()polar.render()

猜你喜欢

转载自blog.csdn.net/lingpy/article/details/80307489
今日推荐