什么是pyecharts?pyecharts是Python与ECharts的结合,Python是我们所熟知的语言,而ECharts是百度开源的数据可视化图表设计,这两者的有效结合,使得图表可视化更加绚丽多彩。

本文使用Python语言,借助pyecharts库,绘制常用的柱形图、折线图、饼图、散点图等,使用pyecharts库的交互功能实现动态可视化功能,对于里面的代码都可以修改进行复用,下面一起学习。


条形图


from pyecharts import options asfrom pyecharts.charts importfrom pyecharts.faker import
c = ( Bar() .add_xaxis(Faker.choose())"商家A", Faker.values())"商家B", Faker.values())"Bar-MarkLine(自定义)")) .set_series_opts(False), markline_opts=opts.MarkLineOpts(50, name="yAxis=50")] ), ))c.render_notebook()

Pyecharts绘制15个超实用精美图表~_ide

水平条形图动图



from pyecharts importfrom pyecharts.charts importfrom pyecharts.commons.utils importfrom pyecharts.faker import
cBar()Faker.days_attrs)"商家A", Faker.days_values,itemstyle_opts=opts.ItemStyleOpts(color="#d14a61")) .set_global_opts(TitleOpts(title="Bar-DataZoom(slider-水平)"),DataZoomOpts()], ) )c.render_notebook()

Pyecharts绘制15个超实用精美图表~_ide_02

折线图



from pyecharts.charts import Linefrom pyecharts import options as opts
# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']data1 = [123, 153, 89, 107, 98, 23]data2 = [56, 77, 93, 68, 45, 67]
line = (Line() .add_xaxis(cate)'电商渠道', data1, data=[opts.MarkLineItem(type_="average")]))'门店', data2, is_smooth=True, data=[opts.MarkPointItem(name="自定义标记点", 2], data2[2]], value=data2[2])]))"Line-基本示例", subtitle="我是副标题")) )
line.render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_03

面积图




importfrom pyecharts.charts importfrom pyecharts.faker import
cLine()Faker.choose())"商家A", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))"商家B", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))TitleOpts(title="Line-面积图")))c.render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_04

饼图



fromfrom pyecharts import options as
# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']data = [153, 124, 107, 99, 89, 46]
pie = (Pie()add('', [list(z) for z in zip(cate, data)], radius=["30%", "75%"],"radius" )"Pie-基本示例", subtitle="我是副标题"))"{b}: {d}%")) )
pie.render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_05

玫瑰图


from pyecharts importfrom pyecharts.charts importfrom pyecharts.faker import
v = Faker.choose()cPie() .add("",for z in zip(v, Faker.values())],"30%", "75%"],"25%", "50%"],"radius",LabelOpts(is_show=False), ) .add("",for z in zip(v, Faker.values())],"30%", "75%"],"75%", "50%"],"area", )TitleOpts(title="Pie-玫瑰图示例")))c.render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_06

漏斗图




import pyecharts.options asfrom pyecharts.charts import
x_data = ["展现", "点击", "访问", "咨询", "订单"]y_data = [100, 80, 60, 40, 20]
data = [[x_data[i], y_data[i]] for i in
( Funnel() .add("",'ascending', data_pair=data,2,"item", formatter="{a} <br/>{b} : {c}%"),True, position="inside"),"#fff", border_width=1), )"漏斗图", subtitle="纯属虚构"))).render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_07

热力图




from pyecharts.charts importfrom pyecharts import options asfrom pyecharts.faker importimport
# 示例数据data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]
heat = (HeatMap() .add_xaxis(Faker.clock)"访客数", Faker.week, data,True, position="inside")) .set_global_opts("HeatMap-基本示例", subtitle="我是副标题"), visualmap_opts=opts.VisualMapOpts(),False)) )
heat.render_notebook()

Pyecharts绘制15个超实用精美图表~_ide_08

散点图



from pyecharts importfrom pyecharts.charts importfrom pyecharts.faker import
cScatter()Faker.choose())"商家A", Faker.values())"商家B", Faker.values()) .set_global_opts(TitleOpts(title="Scatter-VisualMap(Size)"),VisualMapOpts(type_="size", max_=150, min_=20), ))c.render_notebook()

Pyecharts绘制15个超实用精美图表~_3d_09

三维散点图



from pyecharts import options asfrom pyecharts.charts importimport

data = [[random.randint(0, 150), random.randint(0, 100), random.randint(0, 100)]for _ in range(1000)]
scatter3D = (Scatter3D()"", data) .set_global_opts("Scatter3D-基本示例"), visualmap_opts=opts.VisualMapOpts(range_color=Faker.visual_color)) )
scatter3D.render_notebook()

Pyecharts绘制15个超实用精美图表~_ide_10

箱线图



from pyecharts importfrom pyecharts.charts import
v1 = [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],]v2 = [890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],]c = Boxplot()c.add_xaxis(["expr1", "expr2"])c.add_yaxis("A", c.prepare_data(v1))c.add_yaxis("B", c.prepare_data(v2))c.set_global_opts(title_opts=opts.TitleOpts(title="BoxPlot-基本示例"))c.render_notebook()

Pyecharts绘制15个超实用精美图表~_ide_11

地图





from pyecharts import options asfrom pyecharts.charts import Mapimport
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江', '浙江', '山西', '河北', '安徽', '河南', '山东', '西藏']data = [(i, random.randint(50, 150)) for i in
_map = (Map()"销售额", data, "china") .set_global_opts("Map-基本示例"), legend_opts=opts.LegendOpts(is_show=False),200, is_piecewise=True), ) )
_map.render_notebook()


区域热力图


    Pyecharts绘制15个超实用精美图表~_3d_12

    世界地图





    from pyecharts.charts import Map  # 注意这里与老版本pyecharts调用的区别from pyecharts import options asimportcountry = ['China', 'Canada', 'France', 'Japan', 'Russia', 'USA']data_world = [(i, random.randint(100, 200)) for i inworld = (    Map()'', # 此处没取名,所以空着# 数据'world') # 地图类型    .set_global_opts('World Map'),        visualmap_opts=opts.VisualMapOpts(200,100,True)  # 定义图例为分段型,默认为连续的图例    )False)))world.render_notebook()


    词云图



    Pyecharts绘制15个超实用精美图表~_3d_13

    组合图


    from pyecharts import options as optsfrom pyecharts.charts import Bar,Line,Gridfrom pyecharts.commons.utils import JsCodefrom pyecharts.faker import Faker
    x_data = ["{}月".format(i) for i in range(1, 13)]bar = (Bar().add_xaxis(x_data).add_yaxis("蒸发量",[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],yaxis_index=0,color="#d14a61",).add_yaxis("降水量",[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],yaxis_index=1,color="#5793f3",).extend_axis(yaxis=opts.AxisOpts(name="蒸发量",type_="value",min_=0,max_=250,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#d14a61")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),)).extend_axis(yaxis=opts.AxisOpts(type_="value",name="温度",min_=0,max_=25,position="left",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#675bba")),axislabel_opts=opts.LabelOpts(formatter="{value} °C"),splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)),)).set_global_opts(yaxis_opts=opts.AxisOpts(name="降水量",min_=0,max_=250,position="right",offset=50,axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#5793f3")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),),title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),))
    line = (Line().add_xaxis(x_data).add_yaxis("平均温度",[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],yaxis_index=2,color="#675bba",label_opts=opts.LabelOpts(is_show=False),))bar.overlap(line)bar.render_notebook()

    Pyecharts绘制15个超实用精美图表~_数据_14