PyEcharts 基本图表之旭日图 ——头歌

第1关:Sunburst:旭日图(一)

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

from pyecharts.charts import Sunburst


data = [
    opts.SunburstItem(
        name="Grandpa",
        children=[
            opts.SunburstItem(
                name="Uncle Leo",
                value=15,
                children=[
                    opts.SunburstItem(name="Cousin Jack", value=2),
                    opts.SunburstItem(
                        name="Cousin Mary",
                        value=5,
                        children=[opts.SunburstItem(name="Jackson", value=2)],
                    ),
                    opts.SunburstItem(name="Cousin Ben", value=4),
                ],
            ),
            opts.SunburstItem(
                name="Father",
                value=10,
                children=[
                    opts.SunburstItem(name="Me", value=5),
                    opts.SunburstItem(name="Brother Peter", value=1),
                ],
            ),
        ],
    ),
    opts.SunburstItem(
        name="Nancy",
        children=[
            opts.SunburstItem(
                name="Uncle Nike",
                children=[
                    opts.SunburstItem(name="Cousin Betty", value=1),
                    opts.SunburstItem(name="Cousin Jenny", value=2),
                ],
            )
        ],
    ),
]

def sunburst_chart() -> Sunburst:
    # ********* Begin *********#  
    sunburst = (
         Sunburst(init_opts=opts.InitOpts(width="1000px", height="600px"))
        .add("", data, radius=["0%", "90%"])
        .set_global_opts(title_opts=opts.TitleOpts(title="Sunburst-基本示例"))
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))
    )
    # ********** End **********#
    return sunburst

make_snapshot(snapshot, sunburst_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 输出图片
make_snapshot(snapshot, sunburst_base(data).render(), "StandardAnswer/task1/standard_answer_1.png")

第2关:Sunburst:旭日图(二)

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

from pyecharts.charts import Sunburst

import json

with open("data.json", "r", encoding="utf-8") as f:
    data = json.load(f)


def sunburst_chart() -> Sunburst:
    # ********* Begin *********#  
    sunburst = (
        Sunburst(init_opts=opts.InitOpts(width="1000px", height="600px"))
        .set_global_opts(title_opts=opts.TitleOpts(title="Sunburst-官方示例"))
    )

    sunburst.add(
        series_name="",  # 系列名称为空
        data_pair=data,  # 使用给定数据
        radius=["0%", "95%"],  # 半径设置为0到95%
        highlight_policy="descendant",  # 高亮该扇形块和后代元素
        sort_="null",  # 不排序
        levels=[  # 多层级配置
            {},
            {
                "r0": "15%",
                "r": "35%",
                "itemStyle": {"borderWidth": 2},
                "label": {"rotate": "tangential"},
            },
            {"r0": "35%", "r": "70%", "label": {"align": "right"}},
            {
                "r0": "70%",
                "r": "72%",
                "label": {"position": "outside", "padding": 3, "silent": False},
                "itemStyle": {"borderWidth": 3},
            },
        ],
        label_opts=opts.LabelOpts(formatter="{b}"),  # 标签格式化为{b}
    )
    # ********** End **********#
    return sunburst

make_snapshot(snapshot, sunburst_chart().render("Result/render.html"), "StudentAnswer/student_answer.png") # 输出图片
make_snapshot(snapshot, sunburst_drink_favor(data).render(), "StandardAnswer/task2/standard_answer_2.png")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值