pyecharts系列之Bar的用法

文章目录

准备工作

1、安装库pyecharts
以下代码默认版本为1.x

pip install pyecharts

2、输出
本文主要用Jupyter Notebook进行操作,Jupyter Notebook 直接调用 render_notebook 随时随地渲染图表

.render_notebook()

也可输出html格式

.render("name.html")

3、导入所用相关库

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

opts:各种配置项
Bar:绘制柱状图
Faker:内置数据集

Faker数据集

Faker.choose()
Faker.values()

一、柱状图

简单实现柱状图

add_xaxis:添加x轴信息
add_yaxis:添加y轴信息包含系列名称,系列数据
set_global_opts:添加主标题与副标题
render_notebook():在Jupyter Notebook显示

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values())
    .add_yaxis("系列2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))

)
bar.render_notebook()

图片如下

pyecharts系列之Bar的用法

以上是链式调用,如果不习惯链式调用可以单独调用,比如

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_notebook()

都是可以的

二、堆积柱状图

堆积柱状图与柱状图不同的地方在于
add_yaxis下的stack参数.如果两个系列stack参数参数一致则就是堆叠放置

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values(), stack="stack1")
    .add_yaxis("系列1", Faker.values(), stack="stack1")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆积柱状图"))
)
bar.render_notebook()

pyecharts系列之Bar的用法

三、瀑布图

x_data = [f"11月{str(i)}日" for i in range(1, 12)]
y_total = [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292]
y_in = [900, 345, 393, "-", "-", 135, 178, 286, "-", "-", "-"]
y_out = ["-", "-", "-", 108, 154, "-", "-", "-", 119, 361, 203]

bar = (
    Bar()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="",
        y_axis=y_total,
        stack="总量",
        itemstyle_opts=opts.ItemStyleOpts(color="rgba(0,0,0,0)"),
    )
    .add_yaxis(series_name="收入", y_axis=y_in, stack="总量")
    .add_yaxis(series_name="支出", y_axis=y_out, stack="总量")
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-瀑布图"))
)
bar.render_notebook()

y_total系列图形颜色设置为完全透明,然后与收入支出堆积叠放形成瀑布图

四、直方图

直方图与条形图的区别是柱之间的间隔,如果间隔为0那就可以称之为直方图
用参数category_gap就可以控制

此外还有一个参数Faker.rand_color():随机颜色,每次刷新都会出现不一样的颜色

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1",Faker.days_values,color=Faker.rand_color(),category_gap=0,)

    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图", subtitle="我是副标题"),
        )

    .set_series_opts(label_opts=opts.LabelOpts(is_show=False),
)
bar.render_notebook()

pyecharts系列之Bar的用法

五、条形图

条形图与柱状图的区别就是x轴y轴旋转过来了.

用函数reversal_axis()就可以实现了

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values())
    .add_yaxis("系列2", Faker.values())
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴"))
)
bar.render_notebook()

pyecharts系列之Bar的用法

六、配置

1、主题配置

pyecharts提供多个主题颜色配置,即便是你不会配色也能制作出好看的图表啦
有 LIGHT、DARK、CHALK、ESSOS、INFOGRAPHIC、MACARONS、PURPLE_PASSION、ROMA、ROMANTIC、SHINE、VINTAGE、WALDEN、WESTEROS、WONDERLAND

下以DARK为例,其他的主题可以自己尝试一下哈

from pyecharts.globals import ThemeType
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values())
    .add_yaxis("系列2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))

)
bar.render_notebook()

pyecharts系列之Bar的用法

2、区域缩放

type_为组件类型,默认为”slider”,可选 “inside”.这个两个区别可以自己尝试一下

bar = (
    Bar()
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("系列1", Faker.days_values,color=Faker.rand_color())
    .add_yaxis("系列2", Faker.days_values,color=Faker.rand_color())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-区域缩放", subtitle="我是副标题"),
    datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")])
)
bar.render_notebook()

pyecharts系列之Bar的用法
y轴进行缩放需要加
orient="vertical"
bar = (
    Bar()
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("系列1", Faker.days_values,color=Faker.rand_color())
    .add_yaxis("系列2", Faker.days_values,color=Faker.rand_color())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-区域缩放(slider-垂直)", subtitle="我是副标题"),
    datazoom_opts=opts.DataZoomOpts(orient="vertical"))
)
bar.render_notebook()

pyecharts系列之Bar的用法

3、标记线

自定义标记线

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.days_values,color=Faker.rand_color())
    .add_yaxis("系列2", Faker.days_values,color=Faker.rand_color())

    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-自定义标记线", subtitle="我是副标题")
                    )

    .set_series_opts(label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=10, name="yAxis=10")])
                                       )
)
bar.render_notebook()

pyecharts系列之Bar的用法
在y=10的处设置标记线并命名yAxis=10

指定标记线
可以按照平均值、最大、最小进行设置标记线

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values())
    .add_yaxis("系列2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(指定类型)"))
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        ),
    )
)
bar.render_notebook()

pyecharts系列之Bar的用法

4、标记点

自定义标记点
symbol参数设置标记的图形
ECharts 提供的标记类型包括 ‘circle’, ‘rect’, ’roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’

x, y = Faker.choose(), Faker.values()
bar = (
    Bar()
    .add_xaxis(x)
    .add_yaxis(
        "系列1",
        y,
        markpoint_opts=opts.MarkPointOpts(
            data=[opts.MarkPointItem(name="自定义标记点", coord=[x[6], y[6]], value=y[6],symbol='arrow')]
        ),
    )
    .add_yaxis("系列2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkPoint(自定义)"))
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
bar.render_notebook()

指定x的第7位系列1做标记,标记形式为箭头

pyecharts系列之Bar的用法

指定类型标记点

bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("系列1", Faker.values())
    .add_yaxis("系列2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkPoint(指定类型)"))
    .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="最小值"),
                opts.MarkPointItem(type_="average", name="平均值"),
            ]
        ),
    )
)
bar.render_notebook()

用最大值最小值平均值做标记,默认标记

pyecharts系列之Bar的用法

Original: https://blog.csdn.net/weixin_41867184/article/details/121606807
Author: 瓜瓜的小宝藏
Title: pyecharts系列之Bar的用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/693831/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球