pyecharts

pyecharts说明文档

https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9

pyecharts安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

pyecharts快速入门

pyecharts中可以绘制的图有很多,这里我们先来总体的了解一下他的使用风格,和调用的方式。

pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本.经开发团队决定,0.5.x 版本将不再进行维护,0.5.x 版本代码位于 05x 分支

import pyecharts
pyecharts.__version__
'1.9.0'

pyecharts简单使用

from pyecharts.charts import Bar
实例化
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A",[5,20,36,10,75,90])
render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
也可以传入路径参数,如 bar.render("mycharts.html")
bar.render()

# 实例化
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A",[5,20,36,10,75,90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render()

设置在notebook上展示
bar.render_notebook()

# 实例化
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A",[5,20,36,10,75,90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render_notebook()

运行效果:


1.png

链式调用

对上述代码进行重整,得到链式调用。


from pyecharts.charts import Bar
bar = (
       Bar()
       .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
       .add_yaxis("商家A",[5,20,36,10,75,90])
        )
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render_notebook()

运行效果同上图

保存图片

from pyecharts.charts import Bar 
from pyecharts.render import make_snapshot
# 使用 snapshot-selenium 渲染图片
from snapshot_selenium import snapshot
bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A",[5,20,36,10,75,90])
    .add_yaxis("商家B",[10,30,46,60,35,10])
)
make_snapshot(snapshot,bar.render(),"bar.png")

全局配置

全局配置项
我们来看下全局配置项有哪些。在学习具体的配置项之前,先来看下pyecharts生成的图由哪几个部分组成。


1590664859188-ff6cc122-f499-4cff-b6e5-fff273e5e0e5.png

针对以上每个部分,都有相应的配置项来进行配置。所有的配置类,都是放到pyecharts.options中。
-# 06-2配置项

![image](https://upload-images.jianshu.io/upload_images/25981608-76f72fb75161164e.jpeg?imageMogr2/auto

  • 初始化配置项
    可以配置诸如图像宽度,高度,图表主题,背景颜色等。

class pyecharts.options.InitOpts
class InitOpts(
# 图表画布宽度,css 长度单位。
width: str = "900px",

# 图表画布高度,css 长度单位。
height: str = "500px",

# 图表 ID,图表唯一标识,用于在多图表时区分。
chart_id: Optional[str] = None,

# 渲染风格,可选 "canvas", "svg"
# # 参考 `全局变量` 章节
renderer: str = RenderType.CANVAS,

# 网页标题
page_title: str = "Awesome-pyecharts",

# 图表主题
theme: str = "white",

# 图表背景颜色
bg_color: Optional[str] = None,

# 远程 js host,如不设置默认为 https://assets.pyecharts.org/assets/"
# 参考 `全局变量` 章节
js_host: str = "",

# 画图动画初始化配置,参考 `global_options.AnimationOpts`
animation_opts: Union[AnimationOpts, dict] = AnimationOpts(),

)
根椐上述教程,初始化配置项是调用pyecharts下options的类方法InitOpts所以from pyecharts import options as opts、
Bar(init_opts=opts.InitOpts(width= "900px",height= "500px",page_title= "abc",theme= ThemeType.CHALK,bg_color = 'black'))

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
bar = ( 
       Bar(init_opts=opts.InitOpts(width= "900px",
height= "500px",page_title= "abc",
theme= ThemeType.CHALK,bg_color = 'black'))
       .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
       .add_yaxis("商家A",[5,20,36,10,75,90])
        )

bar.render_notebook()
2.png
  • 标题配置项
    class pyecharts.options.TitleOpts
    .set_global_opts()
    .set_global_opts(title_opts = opts.TitleOpts(title='销售对比',title_link='https://www.baidu.com',subtitle='2021年度',pos_left='20%'))
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
bar = ( 
       Bar(init_opts=opts.InitOpts(width= "900px",height= "500px",
page_title= "abc",theme= ThemeType.CHALK,bg_color = 'black'))
       .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
       .add_yaxis("商家A",[5,20,36,10,75,90])
       .add_yaxis('商家B',[8,34,25,14,56,100])
       .set_global_opts(title_opts = opts.TitleOpts(title='销售对比',
title_link='https://www.baidu.com',subtitle='2021年度',pos_left='20%'))

)
bar.render_notebook()
4.png
  • 图例配置项
    class pyecharts.options.LegendOpts
    .set_global_opts()
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
bar = ( 
       Bar(init_opts=opts.InitOpts(width= "900px",height= "500px",page_title= "abc",theme= ThemeType.CHALK,bg_color = 'black'))
       .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
       .add_yaxis("商家A",[5,20,36,10,75,90])
       .add_yaxis('商家B',[8,34,25,14,56,100])
       .set_global_opts(title_opts = opts.TitleOpts(title='销售对比',title_link='https://www.baidu.com',subtitle='2021年度',pos_left='20%'),
                       legend_opts = opts.LegendOpts(is_show=True,pos_left="600px",orient="vertical"))
)
bar.render_notebook()
7.png
  • 区域缩放配置项
    class pyecharts.options.DataZoomOpts
    set_global_opts()
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker  # 虚假数据

bar = (
    Bar(init_opts=opts.InitOpts())
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("商家A", Faker.days_values, color=Faker.rand_color())
    .set_global_opts(
        title_opts = opts.TitleOpts(title="主标题",subtitle="副标题",title_link="https://www.baidu.com/",pos_left="50%"),
        legend_opts = opts.LegendOpts(is_show=True,pos_left="600px",orient="vertical"),
        datazoom_opts = opts.DataZoomOpts(type_="inside")
    )
    
)

bar.render_notebook()
57.png
  • 视觉映射配置项
    class pyecharts.options.VisualMapOpts
    set_global_opts()
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts.globals import ChartType

c = (
    Geo()
    .add_schema(maptype="广东")
    .add(
        "geo",
        [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
        type_=ChartType.HEATMAP,
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_piecewise=False), title_opts=opts.TitleOpts(title="Geo-广东地图")
    )

)
c.render_notebook()
5.png
  • 工具箱配置项
    class pyecharts.options.ToolboxOpts
    set_global_opts()
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-显示 ToolBox"),
        toolbox_opts=opts.ToolboxOpts(is_show=True),
        legend_opts=opts.LegendOpts(is_show=True),
    )

)
c.render_notebook()
6.png

系列配置项

.set_series_opts()
以LabelOpts:标签配置项为例
pyecharts.options.LabelOpts

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

c = (
    Geo()
    .add_schema(maptype="china")
    .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-基本示例")
    )
)
c.render_notebook()
9.png
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker  # 虚假数据

bar = (
    Bar(init_opts=opts.InitOpts())
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("商家A", Faker.days_values, color=Faker.rand_color())
    # 系列配置项
    .set_series_opts(label_opts=opts.LabelOpts(rotate=30))
    # 全局配置项
    .set_global_opts(
        title_opts = opts.TitleOpts(title="主标题",subtitle="副标题",title_link="https://www.baidu.com/",pos_left="50%"),
        legend_opts = opts.LegendOpts(is_show=True,pos_left="600px",orient="vertical"),
        datazoom_opts = opts.DataZoomOpts(type_="inside")
    )
    
)

bar.render_notebook()
10.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容