Python数据可视化模块pyecharts

49次阅读
没有评论

共计 2710 个字符,预计需要花费 7 分钟才能阅读完成。

安装命令:pip install pyecharts

pyecharts 官网:https://pyecharts.org/

5 分钟上手

from pyecharts.charts import Bar

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

# pyecharts 所有方法均支持链式调用
bar = (Bar()
    .add_xaxis([" 衬衫 ", " 羊毛衫 ", " 雪纺衫 ", " 裤子 ", " 高跟鞋 ", " 袜子 "])
    .add_yaxis(" 商家 A ", [5, 20, 36, 10, 75, 90])
)

options 配置项

在 pyecharts 中,一切皆 Options。

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

bar = (Bar()
    .add_xaxis([" 衬衫 ", " 羊毛衫 ", " 雪纺衫 ", " 裤子 ", " 高跟鞋 ", " 袜子 "])
    .add_yaxis(" 商家 A ", [5, 20, 36, 10, 75, 90])
    .set_global_opts(title_opts={"text": " 主标题 ", "subtext": " 副标题 "})
)

渲染成图片

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

# 使用 snapshot-selenium 渲染图片:pip install snapshot_selenium
from snapshot_selenium import snapshot

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

使用主题

from pyecharts import options as opts
from pyecharts.globals import ThemeType  # 导入主题包
bar = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis([" 衬衫 ", " 羊毛衫 ", " 雪纺衫 ", " 裤子 ", " 高跟鞋 ", " 袜子 "])
    .add_yaxis(" 商家 A ", [5, 20, 36, 10, 75, 90])
    .add_yaxis(" 商家 B ", [15, 6, 45, 20, 35, 66])
)
bar.render()

pyecharts 内置主题:https://pyecharts.org/#/zh-cn/themes

配置项

全局配置项

全局配置项通过 set_global_opts 方法设置。

初始化配置项

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

bar = (
    Bar(
        init_opts=opts.InitOpts(
            width="700px",  # 图表画布大小
            height="400px",
            page_title=" 网页标题 ",
        )
    )
    .add_xaxis(Faker.choose())
    .add_yaxis(" 商家 A ", Faker.values())
    .add_yaxis(" 商家 B ", Faker.values())
)
bar.render()

标题配置项

bar = (Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis(" 商家 A ", Faker.values())
    .add_yaxis(" 商家 B ", Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title=" 柱形图 ",  # 主标题
            title_link="https://aboss.top/",
            title_target="blank",
            subtitle=" 副标题 ",
        )
    )
)

区域缩放配置项

bar = (Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis(" 商家 A ", Faker.values())
    .add_yaxis(" 商家 B ", Faker.values())
    .set_global_opts(
        datazoom_opts=opts.DataZoomOpts(
            is_show=True,
            type_="slider",  # 组件类型,默认 "slider", 可选 "inside"
        )
    )
)

系列配置项

图元样式配置项

line = (Line()
    .add_xaxis(Faker.choose())
    .add_yaxis(" 商家 A ", Faker.values())
    .add_yaxis(" 商家 B ", Faker.values())
    .set_series_opts(
        itemstyle_opts=opts.ItemStyleOpts(color="red",)
    )
)

原生 JavaScript

pyecharts 支持传入原生 JS 函数。

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.commons.utils import JsCode

color_func = """
function (params) {if (params.value > 0 && params.value < 50) {return 'red'} else if (params.value > 50 && params.value < 100) {return 'blue'} else {return 'green'}
}
"""

bar = (Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis(
        " 商家 A ",
        Faker.values(),
        itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_func),
        ),
    )
)

bar.render()

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2024-01-19发表,共计2710字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)