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快速开始

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

 

绘制条形图

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.render_notebook()

 

链式调用

pyecharts中所有的方法都支持链式调用。

from pyecharts.charts import Bar
bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
)
bar.render_notebook()

全局配置项

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

 

image.png

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

 

InitOpts:初始化配置项

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

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

c = (
        Bar(
            init_opts=opts.InitOpts(
                width="500px",
                height="400px",
                theme=ThemeType.LIGHT,
                bg_color="skyblue"
            )
        )
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
    )
c.render_notebook()

 

TitleOpts:标题配置项

配置图的标题和子标题等信息。

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts(
            title="销售表",
            pos_right="0",
            pos_bottom="2px",
            title_textstyle_opts=opts.TextStyleOpts(**{"color":"#333","font_size":12})
        ))
    )
c.render_notebook()

 

LegendOpts:图例配置项

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            legend_opts=opts.LegendOpts(selected_mode="mutiple",orient="vertical",pos_right="30px")
        )
    )
c.render_notebook()

 

VisualMapOpts:视觉映射配置项

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商品",[(x,y) for x,y in zip(Faker.values(),Faker.values())])
    .set_global_opts(
        visualmap_opts = opts.VisualMapOpts(type_="size",range_text=['大','小'])
    )
)
c.render_notebook()

 

TooltipOpts:提示框配置项

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A",Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Scatter-多维度数据"),
        tooltip_opts=opts.TooltipOpts(
            formatter=JsCode(
                "function (params) {return params.value}"
            )
        )
    )
)
c.render_notebook()

 

AxisLineOpts/AxisTickOpts/AxisPointerOpts/AxisOpts: 坐标轴轴线/刻度/指示器/坐标轴配置项。

c = (
        Bar()
        .add_xaxis(
            [
                "名字拉拉长的X轴标签1",
                "名字拉拉长的X轴标签2",
                "名字拉拉长的X轴标签3",
                "名字拉拉长的X轴标签4",
                "名字拉拉长的X轴标签5",
                "名字拉拉长的X轴标签6",
            ]
        )
        .add_yaxis("商家A", [10, 20, 30, 40, 50, 40])
        .add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(
                name="商家名称",
                axislabel_opts=opts.LabelOpts(rotate=-15),
                axisline_opts = opts.AxisLineOpts(symbol="arrow",linestyle_opts=opts.LineStyleOpts(width=2)),
                axistick_opts = opts.AxisTickOpts(is_inside=True,length=20),
                axispointer_opts = opts.AxisPointerOpts(is_show=True,type_="line")
            )
        )
    )
c.render_notebook()

条形图

横向条形图

横向条形图只需要调用reversal_axis()即可。

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴"))
)

image.png

堆叠条形图

堆叠条形图只要在添加y轴的函数add_yaxis上添加stack参数即可。

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), stack="stack1")
    .add_yaxis("商家B", Faker.values(), stack="stack1")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"))
)

image.png

设置条形图的间距

  • category_gap参数:x轴每个分类的间距
  • gap参数:统一分类下多根柱子间的间距
c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), category_gap="80%")
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-单系列柱间距离"))
)

image.png

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), gap="0%")
    .add_yaxis("商家B", Faker.values(), gap="0%")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-不同系列柱间距离"),
    )
)

image.png

带有网格的条形图

网格图,是在x轴和y轴上,都绘制横线,形成的网格。可以在opts.AxisOpts中通过设置splitline_opts实现。

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-显示分割线"),
            xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
            yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
        )
    )
c.render_notebook()

 

箱线图

箱线图使用pyecharts.charts.Boxplot来实现。

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(["商品1","商品2"])
c.add_yaxis("A",c.prepare_data(v1))
c.add_yaxis("B",c.prepare_data(v2))
c.render_notebook()

image.png

散点图

散点图用的是pyecharts.charts.Scatter来实现的。

 

基本使用

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Scatter-基本示例"))
)
c.render_notebook()

image.png

多维散点图

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis(
        "商家A",
        [list(z) for z in zip(Faker.values(), Faker.choose())],
        label_opts=opts.LabelOpts(
            formatter=JsCode(
                "function(params){return params.value[1] +' : '+ params.value[2];}"
            )
        ),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Scatter-多维度数据"),
        tooltip_opts=opts.TooltipOpts(
            formatter=JsCode(
                "function (params) {return params.name + ' : ' + params.value[2];}"
            )
        ),
        visualmap_opts=opts.VisualMapOpts(
            type_="color", max_=150, min_=20, dimension=1
        ),
    )
)
c.render_notebook()

image.png

 

地理图

中国地图

c = (
    Map()
    .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-VisualMap(连续型)"),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)
c.render_notebook()

image.png

 

中国局部地图

c = (
    Map()
    .add("商家A", [list(z) for z in zip(Faker.guangdong_city, Faker.values())], "广东")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-广东地图"),
        visualmap_opts=opts.VisualMapOpts(),
    )
)
c.render_notebook()

image.png

世界地图

c = (
    Map()
    .add("商家A", [list(z) for z in zip(Faker.country, Faker.values())], "world")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-世界地图"),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)
c.render_notebook()

 

image.png

  •  
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天道工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值