Pyecharts Practice

1 快速開始

import pyecharts
# 查看pyecharts版本
print(pyecharts.__version__)

1.1 繪制圖表

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 會生成本地 HTML 文件,默認會在當前目錄生成 render.html 文件
# 也可以傳入路徑參數(shù),如 bar.render("mycharts.html")
# bar.render()用于在本地生成html文件
# bar,render_notebook()只在notebook里生成圖片
bar.render_notebook()
柱狀圖

1.2 使用options配置項

from pyecharts.charts import Bar
from pyecharts import options as opts

bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.set_global_opts(title_opts=opts.TitleOpts(title="主標題", subtitle="副標題"))
#bar.render()
bar.render_notebook()
柱狀圖

1.3 渲染圖片

from pyecharts.charts import Bar
from pyecharts.render import make_snapshot

# 使用 snapshot-selenium 渲染圖片
from snapshot_selenium import snapshot

bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# 將網(wǎng)頁保存成圖片存在本地
make_snapshot(snapshot, bar.render(), "bar.png")

1.4 使用主題

from pyecharts.charts import Bar
from pyecharts import options as opts
# 內(nèi)置主題類型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
bar.set_global_opts(title_opts=opts.TitleOpts(title="主標題", subtitle="副標題"))
#bar.render()
bar.render_notebook()
柱狀圖

2 圖表類型

2.1 基本圖表

2.1.1 漏斗圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Funnel, Page

funnel = Funnel()
funnel.add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())])
funnel.set_global_opts(title_opts=opts.TitleOpts(title="漏斗圖-基本示例"))
funnel.render_notebook()
漏斗圖
# 標簽內(nèi)置
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Funnel, Page

funnel = Funnel()
funnel.add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())],label_opts=opts.LabelOpts(position="inside"))
funnel.set_global_opts(title_opts=opts.TitleOpts(title="漏斗圖(標簽內(nèi)置)"))
funnel.render_notebook()
漏斗圖
# 倒置
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Funnel, Page

funnel = Funnel()
funnel.add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())],sort_="ascending",label_opts=opts.LabelOpts(position="inside"))
funnel.set_global_opts(title_opts=opts.TitleOpts(title="漏斗圖(倒置)"))
funnel.render_notebook()
漏斗圖

2.1.2 儀表盤

from pyecharts import options as opts
from pyecharts.charts import Gauge, Page

base_gauge = Gauge()
base_gauge.add("", [("完成率", 66.6)])
base_gauge.render_notebook()
儀表盤
from pyecharts import options as opts
from pyecharts.charts import Gauge, Page

base_gauge = Gauge()
base_gauge.add("業(yè)務指標",[("完成率", 55.5)],axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")], width=30)))
base_gauge.set_global_opts(title_opts=opts.TitleOpts(title="Gauge-不同顏色"),legend_opts=opts.LegendOpts(is_show=False))
base_gauge.render_notebook()
儀表盤

2.1.3 水球圖

from pyecharts import options as opts
from pyecharts.charts import Liquid, Page

liquid_base = Liquid()
liquid_base.add('lq',[0.6,0.7])
liquid_base.set_global_opts(title_opts=opts.TitleOpts(title="水球圖-基本示例"))
liquid_base.render_notebook()
水球圖

2.1.4 餅圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Pie

base_pie = Pie()
base_pie.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
base_pie.set_global_opts(title_opts=opts.TitleOpts(title="餅圖-基本示例"))
base_pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
base_pie.render_notebook()
餅圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Pie

base_pie = Pie()
base_pie.add("", [list(z) for z in zip(Faker.choose(), Faker.values())],radius=["40%","75"])
base_pie.set_global_opts(title_opts=opts.TitleOpts(title="餅圖-圓環(huán)圖")
                         ,legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"))
base_pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
base_pie.render_notebook()
圓環(huán)圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Pie

rose_pie = Pie()
rose_pie.add(
            "",
            [list(z) for z in zip(Faker.choose(), Faker.values())],
            radius=["30%", "75%"],
            center=["25%", "50%"],
            rosetype="radius",
            label_opts=opts.LabelOpts(is_show=False),
        )
rose_pie.render_notebook()
玫瑰圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Pie

rose_pie = Pie()
rose_pie.add(
            "",
            [list(z) for z in zip(Faker.choose(), Faker.values())],
            radius=["30%", "75%"],
            center=["25%", "50%"],
            rosetype="area",
        )
rose_pie.set_global_opts(title_opts=opts.TitleOpts(title="玫瑰圖示例"))
rose_pie.render_notebook()
玫瑰圖

2.1.5 雷達圖

from pyecharts import options as opts
from pyecharts.charts import Radar

v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
base_radar = Radar()
base_radar.add_schema(schema=[
                opts.RadarIndicatorItem(name="銷售", max_=6500),
                opts.RadarIndicatorItem(name="管理", max_=16000),
                opts.RadarIndicatorItem(name="信息技術(shù)", max_=30000),
                opts.RadarIndicatorItem(name="客服", max_=38000),
                opts.RadarIndicatorItem(name="研發(fā)", max_=52000),
                opts.RadarIndicatorItem(name="市場", max_=25000),
                ])
base_radar.add("預算分配",v1,color="#f9713c")
base_radar.add("實際開銷",v2,color="#b3e4a1")
base_radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
base_radar.set_global_opts(title_opts=opts.TitleOpts(title="雷達圖-基本示例"))
base_radar.render_notebook()
雷達圖

2.1.6 主題河流圖

from pyecharts import options as opts
from pyecharts.charts import Page, ThemeRiver

data = [
        ["2015/11/08", 10, "DQ"],
        ["2015/11/09", 15, "DQ"],
        ["2015/11/10", 35, "DQ"],
        ["2015/11/14", 7, "DQ"],
        ["2015/11/15", 2, "DQ"],
        ["2015/11/16", 17, "DQ"],
        ["2015/11/17", 33, "DQ"],
        ["2015/11/18", 40, "DQ"],
        ["2015/11/19", 32, "DQ"],
        ["2015/11/20", 26, "DQ"],
        ["2015/11/08", 35, "TY"],
        ["2015/11/09", 36, "TY"],
        ["2015/11/10", 37, "TY"],
        ["2015/11/11", 22, "TY"],
        ["2015/11/12", 24, "TY"],
        ["2015/11/13", 26, "TY"],
        ["2015/11/14", 34, "TY"],
        ["2015/11/15", 21, "TY"],
        ["2015/11/16", 18, "TY"],
        ["2015/11/17", 45, "TY"],
        ["2015/11/18", 32, "TY"],
        ["2015/11/19", 35, "TY"],
        ["2015/11/20", 30, "TY"],
        ["2015/11/08", 21, "SS"],
        ["2015/11/09", 25, "SS"],
        ["2015/11/10", 27, "SS"],
        ["2015/11/11", 23, "SS"],
        ["2015/11/12", 24, "SS"],
        ["2015/11/13", 21, "SS"],
        ["2015/11/14", 35, "SS"],
        ["2015/11/15", 39, "SS"],
        ["2015/11/16", 40, "SS"],
        ["2015/11/17", 36, "SS"],
        ["2015/11/18", 33, "SS"],
        ["2015/11/19", 43, "SS"],
        ["2015/11/20", 40, "SS"],
        ["2015/11/14", 7, "QG"],
        ["2015/11/15", 2, "QG"],
        ["2015/11/16", 17, "QG"],
        ["2015/11/17", 33, "QG"],
        ["2015/11/18", 40, "QG"],
        ["2015/11/19", 32, "QG"],
        ["2015/11/20", 26, "QG"],
        ["2015/11/21", 35, "QG"],
        ["2015/11/22", 40, "QG"],
        ["2015/11/23", 32, "QG"],
        ["2015/11/24", 26, "QG"],
        ["2015/11/25", 22, "QG"],
        ["2015/11/08", 10, "SY"],
        ["2015/11/09", 15, "SY"],
        ["2015/11/10", 35, "SY"],
        ["2015/11/11", 38, "SY"],
        ["2015/11/12", 22, "SY"],
        ["2015/11/13", 16, "SY"],
        ["2015/11/14", 7, "SY"],
        ["2015/11/15", 2, "SY"],
        ["2015/11/16", 17, "SY"],
        ["2015/11/17", 33, "SY"],
        ["2015/11/18", 40, "SY"],
        ["2015/11/19", 32, "SY"],
        ["2015/11/20", 26, "SY"],
        ["2015/11/21", 35, "SY"],
        ["2015/11/22", 4, "SY"],
        ["2015/11/23", 32, "SY"],
        ["2015/11/24", 26, "SY"],
        ["2015/11/25", 22, "SY"],
        ["2015/11/08", 10, "DD"],
        ["2015/11/09", 15, "DD"],
        ["2015/11/10", 35, "DD"],
        ["2015/11/11", 38, "DD"],
        ["2015/11/12", 22, "DD"],
        ["2015/11/13", 16, "DD"],
        ["2015/11/14", 7, "DD"],
        ["2015/11/15", 2, "DD"],
        ["2015/11/16", 17, "DD"],
        ["2015/11/17", 33, "DD"],
        ["2015/11/18", 4, "DD"],
        ["2015/11/19", 32, "DD"],
        ["2015/11/20", 26, "DD"],
    ]
theme_river = ThemeRiver()
theme_river.add(["DQ", "TY", "SS", "QG", "SY", "DD"],data,
            singleaxis_opts=opts.SingleAxisOpts(type_="time", pos_bottom="10%"))
theme_river.set_global_opts(title_opts=opts.TitleOpts(title="主題河流圖-基本示例"))
theme_river.render_notebook()
主題河流圖

2.1.7 詞云圖

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType


words = [
    ("Sam S Club", 10000),
    ("Macys", 6181),
    ("Amy Schumer", 4386),
    ("Jurassic World", 4055),
    ("Charter Communications", 2467),
    ("Chick Fil A", 2244),
    ("Planet Fitness", 1868),
    ("Pitch Perfect", 1484),
    ("Express", 1112),
    ("Home", 865),
    ("Johnny Depp", 847),
    ("Lena Dunham", 582),
    ("Lewis Hamilton", 555),
    ("KXAN", 550),
    ("Mary Ellen Mark", 462),
    ("Farrah Abraham", 366),
    ("Rita Ora", 360),
    ("Serena Williams", 282),
    ("NCAA baseball tournament", 273),
    ("Point Break", 265),
]
base_wordcloud = WordCloud()
base_wordcloud.add("", words, word_size_range=[20, 100])
base_wordcloud.set_global_opts(title_opts=opts.TitleOpts(title="詞云圖-基本示例"))
base_wordcloud.render_notebook()
詞云圖
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType


words = [
    ("Sam S Club", 10000),
    ("Macys", 6181),
    ("Amy Schumer", 4386),
    ("Jurassic World", 4055),
    ("Charter Communications", 2467),
    ("Chick Fil A", 2244),
    ("Planet Fitness", 1868),
    ("Pitch Perfect", 1484),
    ("Express", 1112),
    ("Home", 865),
    ("Johnny Depp", 847),
    ("Lena Dunham", 582),
    ("Lewis Hamilton", 555),
    ("KXAN", 550),
    ("Mary Ellen Mark", 462),
    ("Farrah Abraham", 366),
    ("Rita Ora", 360),
    ("Serena Williams", 282),
    ("NCAA baseball tournament", 273),
    ("Point Break", 265),
]
base_wordcloud = WordCloud()
base_wordcloud.add("", words, word_size_range=[20, 100],shape=SymbolType.DIAMOND)
base_wordcloud.set_global_opts(title_opts=opts.TitleOpts(title="詞云圖-基本示例"))
base_wordcloud.render_notebook()
鉆石型詞云圖

2.2 直角坐標系圖表

2.2.1 柱狀圖/條形圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-基本示例",subtitle="此處是副標題"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values(),is_selected=False)
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-默認取消顯示某Series",subtitle="此處是副標題"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-顯示ToolBox",subtitle="此處是副標題"),
                   toolbox_opts=opts.ToolboxOpts(),
                   legend_opts=opts.LegendOpts(is_show=False))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values(),category_gap="40%")
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-單系列柱間距離"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-Y 軸 formatter"),
                   yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}/月")))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-XY軸名稱"),
                   xaxis_opts=opts.AxisOpts(name="此處是X軸"),
                   yaxis_opts=opts.AxisOpts(name="此處是Y軸"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-翻轉(zhuǎn)XY軸"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values(),stack="stack1")
bar.add_yaxis("商家B",Faker.values(),stack="stack1")
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.set_global_opts(title_opts=opts.TitleOpts(title="堆疊柱狀圖"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values(),stack="stack1")
bar.add_yaxis("商家B",Faker.values(),stack="stack1")
bar.add_yaxis("商家C",Faker.values())
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.set_global_opts(title_opts=opts.TitleOpts(title="(部分系列)堆疊柱狀圖"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
                   markpoint_opts=opts.MarkPointOpts(
                   data=[
                       opts.MarkPointItem(type_="max",name="最大值"),
                       opts.MarkPointItem(type_="min",name="最小值")
                   ]))
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-指定類型標記點"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
x,y = Faker.choose(),Faker.values()
bar.add_xaxis(x)
bar.add_yaxis("商家A",y,markpoint_opts=opts.MarkPointOpts(
                   data=[
                       opts.MarkPointItem(name="自定義標記點",coord=[x[2],y[2]],value=y[2])
                   ]))
bar.add_yaxis("商家B",Faker.values())
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-指定類型標記點"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
                   markline_opts=opts.MarkLineOpts(
                   data=[
                       opts.MarkLineItem(type_="max",name="最大值"),
                       opts.MarkLineItem(type_="min",name="最小值")
                   ]))
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-指定類型標記線"))
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.days_attrs)
bar.add_yaxis("商家A",Faker.days_values)
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-水平數(shù)據(jù)縮放"),
                   datazoom_opts=opts.DataZoomOpts())
bar.render_notebook()
柱狀圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(Faker.days_attrs)
bar.add_yaxis("商家A",Faker.days_values)
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱狀圖-水平數(shù)據(jù)縮放"),
                   datazoom_opts=opts.DataZoomOpts(orient="vertical"))
bar.render_notebook()
柱狀圖
from pyecharts import options as opts
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis([
                "名字很長的X軸標簽1",
                "名字很長的X軸標簽2",
                "名字很長的X軸標簽3",
                "名字很長的X軸標簽4",
                "名字很長的X軸標簽5",
                "名字很長的X軸標簽6",
            ])
bar.add_yaxis("商家A", [10, 20, 30, 40, 50, 40])
bar.add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
                   title_opts=opts.TitleOpts(title="柱狀圖-旋轉(zhuǎn)x軸標簽",subtitle="解決標簽過長問題"))
bar.render_notebook()
柱狀圖

2.2.2 箱型圖

from pyecharts import options as opts
from pyecharts.charts import Boxplot

v1 = [
        [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880]
        + [1000, 980, 930, 650, 760, 810, 1000, 1000, 960, 960],
        [960, 940, 960, 940, 880, 800, 850, 880, 900]
        + [840, 830, 790, 810, 880, 880, 830, 800, 790, 760, 800],
    ]
v2 = [
        [890, 810, 810, 820, 800, 770, 760, 740, 750, 760]
        + [910, 920, 890, 860, 880, 720, 840, 850, 850, 780],
        [890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870]
        + [870, 810, 740, 810, 940, 950, 800, 810, 870],
    ]

box_plot = Boxplot()
box_plot.add_xaxis(["expr1", "expr2"])
box_plot.add_yaxis("A", box_plot.prepare_data(v1))
box_plot.add_yaxis("B", box_plot.prepare_data(v2))
box_plot.set_global_opts(title_opts=opts.TitleOpts(title="箱型圖-基本示例"))
box_plot.render_notebook()
箱型圖

2.2.3 漣漪特效散點圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.globals import SymbolType

effect_scatter = EffectScatter()
effect_scatter.add_xaxis(Faker.choose())
effect_scatter.add_yaxis("",Faker.values())
effect_scatter.set_global_opts(title_opts=opts.TitleOpts(title="漣漪特效散點圖-基本示例"))
effect_scatter.render_notebook()
散點圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.globals import SymbolType

effect_scatter = EffectScatter()
effect_scatter.add_xaxis(Faker.choose())
effect_scatter.add_yaxis("",Faker.values())
effect_scatter.set_global_opts(title_opts=opts.TitleOpts(title="漣漪特效散點圖-顯示網(wǎng)格線"),
                              xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
                              yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
effect_scatter.render_notebook()
散點圖

2.2.4 折線圖/面積圖

import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line_base = Line()
line_base.add_xaxis(Faker.choose())
line_base.add_yaxis("商家A",Faker.values())
line_base.add_yaxis("商家B",Faker.values())
line_base.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-基本示例"))
line_base.render_notebook()
折線圖
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line = Line()
y =Faker.values()
y[3],y[6]=None,None
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",y,is_connect_nones=True)
line.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-連接空值"))
line.render_notebook()
折線圖
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line_base = Line()
line_base.add_xaxis(Faker.choose())
line_base.add_yaxis("商家A",Faker.values(),is_smooth=True)
line_base.add_yaxis("商家B",Faker.values(),is_smooth=True)
line_base.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-平滑曲線"))
line_base.render_notebook()
折線圖
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line_base = Line()
line_base.add_xaxis(Faker.choose())
line_base.add_yaxis("商家A",Faker.values(),areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line_base.add_yaxis("商家B",Faker.values(),areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line_base.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-m面積圖"))
line_base.render_notebook()
面積圖
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line_base = Line()
line_base.add_xaxis(Faker.choose())
line_base.add_yaxis("商家A",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]))
line_base.add_yaxis("商家B",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]))
line_base.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-標記點"))
line_base.render_notebook()
折線圖
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line

line_base = Line()
line_base.add_xaxis(Faker.choose())
line_base.add_yaxis("商家A",Faker.values(),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))
line_base.add_yaxis("商家B",Faker.values(),)
line_base.set_global_opts(title_opts=opts.TitleOpts(title="折線圖-標記點"))
line_base.render_notebook()
折線圖

2.2.5 散點圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter

scatter = Scatter()
scatter.add_xaxis(Faker.choose())
scatter.add_yaxis("商家A",Faker.values())
scatter.set_global_opts(title_opts=opts.TitleOpts(title="散點圖-基本示例"))
scatter.render_notebook()
散點圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter

scatter = Scatter()
scatter.add_xaxis(Faker.choose())
scatter.add_yaxis("商家A",Faker.values())
scatter.set_global_opts(title_opts=opts.TitleOpts(title="散點圖-顯示網(wǎng)格線"),
                       xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
                       yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
scatter.render_notebook()
散點圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter

scatter = Scatter()
scatter.add_xaxis(Faker.choose())
scatter.add_yaxis("商家A",Faker.values())
scatter.set_global_opts(title_opts=opts.TitleOpts(title="散點圖-VisualMap"),
                       visualmap_opts=opts.VisualMapOpts(max_=150))
scatter.render_notebook()
散點圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter

scatter = Scatter()
scatter.add_xaxis(Faker.choose())
scatter.add_yaxis("商家A",Faker.values())
scatter.add_yaxis("商家B",Faker.values())
scatter.set_global_opts(title_opts=opts.TitleOpts(title="散點圖-VisualMap"),
                       visualmap_opts=opts.VisualMapOpts(type_="size",max_=150,min_=20))
scatter.render_notebook()
散點圖

2.3 地理圖表

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_base = Geo()
geo_base.add_schema(maptype="china")
geo_base.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())])
geo_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_base.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-基本示例"),
                        visualmap_opts=opts.VisualMapOpts())
geo_base.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_base = Geo()
geo_base.add_schema(maptype="china")
geo_base.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())])
geo_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_base.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-Visual(分段型)"),
                        visualmap_opts=opts.VisualMapOpts(is_piecewise=True))
geo_base.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_base = Geo()
geo_base.add_schema(maptype="china")
geo_base.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())],type_=ChartType.EFFECT_SCATTER)
geo_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_base.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-漣漪特效圖"))
geo_base.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_base = Geo()
geo_base.add_schema(maptype="china")
geo_base.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())],type_=ChartType.HEATMAP)
geo_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_base.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-基本示例"),
                        visualmap_opts=opts.VisualMapOpts())
geo_base.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_base = Geo()
geo_base.add_schema(maptype="廣東")
geo_base.add("geo",[list(z) for z in zip(Faker.guangdong_city,Faker.values())],type_=ChartType.HEATMAP)
geo_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_base.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-廣東地圖"),
                        visualmap_opts=opts.VisualMapOpts())
geo_base.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_line = Geo()
geo_line.add_schema(maptype="china")
geo_line.add("",[("廣州", 55), ("北京", 66), ("杭州", 77), ("重慶", 88)],
            type_=ChartType.EFFECT_SCATTER,color="green")
geo_line.add( "geo",[("廣州", "上海"), ("廣州", "北京"), ("廣州", "杭州"), ("廣州", "重慶")],
            type_=ChartType.LINES,
            effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="blue"),
            linestyle_opts=opts.LineStyleOpts(curve=0.2))
geo_line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_line.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-指示線"))
geo_line.render_notebook()
地理圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

geo_line = Geo()
geo_line.add_schema(maptype="china",itemstyle_opts=opts.ItemStyleOpts(color="#323c48", border_color="#111"))
geo_line.add("",[("廣州", 55), ("北京", 66), ("杭州", 77), ("重慶", 88)],
            type_=ChartType.EFFECT_SCATTER,color="white")
geo_line.add( "geo",[("廣州", "上海"), ("廣州", "北京"), ("廣州", "杭州"), ("廣州", "重慶")],
            type_=ChartType.LINES,
            effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="blue"),
            linestyle_opts=opts.LineStyleOpts(curve=0.2))
geo_line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo_line.set_global_opts(title_opts=opts.TitleOpts(title="地理圖表-指示線-背景"))
geo_line.render_notebook()
地理圖

2.4 組合圖表

2.4.1 Grid:并行多圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatter

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="Grid_柱狀圖"))

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values())
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="Grid_折線圖",pos_top="48%"),
                    legend_opts=opts.LegendOpts(pos_top="48%"))

grid = Grid()
grid.add(bar,grid_opts=opts.GridOpts(pos_bottom="60%"))
grid.add(line,grid_opts=opts.GridOpts(pos_top="60%"))
grid.render_notebook()
并行多圖
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatter

scatter = Scatter()
scatter.add_xaxis(Faker.choose())
scatter.add_yaxis("商家A",Faker.values())
scatter.add_yaxis("商家B",Faker.values())
scatter.set_global_opts(title_opts=opts.TitleOpts(title="Grid_散點圖"),
                       legend_opts=opts.LegendOpts(pos_left="20%"))

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values())
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="Grid_折線圖",pos_right="5%"),
                    legend_opts=opts.LegendOpts(pos_right="20%"))

grid = Grid()
grid.add(scatter,grid_opts=opts.GridOpts(pos_left="55%"))
grid.add(line,grid_opts=opts.GridOpts(pos_right="55%"))
grid.render_notebook()
并行多圖

2.4.2 Page:順序多圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Page

bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家A",Faker.values())
bar.add_yaxis("商家B",Faker.values())
bar.set_global_opts(title_opts=opts.TitleOpts(title="Page-柱狀圖"))

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values())
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="Page-折線圖"))

page = Page()
page.add(bar,line)
page.render_notebook()
順序多圖

2.4.3 Tab:選項卡多圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Tab, Pie, Line
from pyecharts.components import Table

bar = Bar()
bar.add_xaxis(Faker.days_attrs)
bar.add_yaxis("商家A", Faker.days_values)
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),
            datazoom_opts=[opts.DataZoomOpts()])

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]))
line.add_yaxis("商家B",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]))
line.set_global_opts(title_opts=opts.TitleOpts(title="Line-MarkPoint"))

v = Faker.choose()
pie = Pie()
pie.add("",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["25%", "50%"],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=False),
        )
pie.add("",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["75%", "50%"],
        rosetype="area",
        )
pie.set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰圖示例"))

table = Table()
headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
        ["Brisbane", 5905, 1857594, 1146.4],
        ["Adelaide", 1295, 1158259, 600.5],
        ["Darwin", 112, 120900, 1714.7],
        ["Hobart", 1357, 205556, 619.5],
        ["Sydney", 2058, 4336374, 1214.8],
        ["Melbourne", 1566, 3806092, 646.9],
        ["Perth", 5386, 1554769, 869.4],
    ]
table.add(headers, rows).set_global_opts(title_opts=opts.ComponentTitleOpts(title="Table"))

tab = Tab()
tab.add(bar, "柱狀圖")
tab.add(line, "折線圖")
tab.add(pie, "玫瑰圖")
tab.add(table, "表格")
tab.render_notebook()
選項卡多圖

2.4.4 Timeline:時間線輪播多圖

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Page, Pie, Timeline

x = Faker.choose()
tl = Timeline()
for i in range(2015, 2020):
    bar = Bar()
    bar.add_xaxis(x)
    bar.add_yaxis("商家A", Faker.values())
    bar.add_yaxis("商家B", Faker.values())
    bar.set_global_opts(title_opts=opts.TitleOpts("某商店{}年營業(yè)額".format(i)))
    tl.add(bar, "{}年".format(i))
tl.render_notebook()
時間線輪播多圖

2.5 HTML組件

2.5.1 表格

from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts

table = Table()
headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
    ["Brisbane", 5905, 1857594, 1146.4],
    ["Adelaide", 1295, 1158259, 600.5],
    ["Darwin", 112, 120900, 1714.7],
    ["Hobart", 1357, 205556, 619.5],
    ["Sydney", 2058, 4336374, 1214.8],
    ["Melbourne", 1566, 3806092, 646.9],
    ["Perth", 5386, 1554769, 869.4],
]
table.add(headers, rows)
table.set_global_opts(title_opts=ComponentTitleOpts(title="Table-我是主標題", subtitle="我是副標題支持換行哦"))
table.render()
表格

2.5.2 圖像

from pyecharts.components import Image
from pyecharts.options import ComponentTitleOpts

image = Image()
img_src = "https://user-images.githubusercontent.com/19553554/39612358-499eb2ae-4f91-11e8-8f56-179c4f0bf2df.png"
image.add(src=img_src,
    style_opts={"width": "200px", "height": "200px", "style": "margin-top: 20px"},)
image.set_global_opts(
    title_opts=ComponentTitleOpts(title="Image-基本示例", subtitle="我是副標題支持換行哦"))
image.render()

主題風格

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker

def theme_bar(theme_name):
    bar = Bar(init_opts=opts.InitOpts(theme=theme_name))
    bar.add_xaxis(Faker.choose())
    bar.add_yaxis("商家A",Faker.values())
    bar.add_yaxis("商家B",Faker.values())
    bar.add_yaxis("商家C",Faker.values())
    bar.add_yaxis("商家D",Faker.values())
    bar.set_global_opts(title_opts=opts.TitleOpts(title=theme_name))
    return bar.render_notebook()
# 默認主題WHITE
theme_bar(theme_name=ThemeType.WHITE)
white
# LIGHT
theme_bar(theme_name=ThemeType.LIGHT)
light
# DARK
theme_bar(theme_name=ThemeType.DARK)
dark
# CHALK
theme_bar(theme_name=ThemeType.CHALK)
chalk
# ESSOS
theme_bar(theme_name=ThemeType.ESSOS)
essos
# INFOGRAPHIC
theme_bar(theme_name=ThemeType.INFOGRAPHIC)
infographic
# MACARONS
theme_bar(theme_name=ThemeType.MACARONS)
macarons
# PURPLE_PASSION
theme_bar(theme_name=ThemeType.PURPLE_PASSION)
pupple_passion
# ROMA
theme_bar(theme_name=ThemeType.ROMA)
roma
# ROMANTIC
theme_bar(theme_name=ThemeType.ROMANTIC)
romantic
# SHINE
theme_bar(theme_name=ThemeType.SHINE)
shine
# VINTAGE
theme_bar(theme_name=ThemeType.VINTAGE)
vintage
# WALDEN
theme_bar(theme_name=ThemeType.WALDEN)
walden
# WESTEROS
theme_bar(theme_name=ThemeType.WESTEROS)
westeros
# WONDERLAND
theme_bar(theme_name=ThemeType.WONDERLAND)
wonderland

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372