zhenxun_bot/zhenxun/utils/echart_utils/__init__.py

32 lines
858 B
Python
Raw Normal View History

import os
from pathlib import Path
import random
from zhenxun import ui
from zhenxun.ui.builders import charts as chart_builders
2024-08-25 00:02:35 +08:00
from .models import Barh
BACKGROUND_PATH = (
Path() / "resources" / "themes" / "default" / "assets" / "ui" / "background"
)
2024-08-25 00:02:35 +08:00
class ChartUtils:
2024-08-25 00:02:35 +08:00
@classmethod
async def barh(cls, data: Barh) -> bytes:
2024-08-25 00:02:35 +08:00
"""横向统计图"""
background_image_name = (
random.choice(os.listdir(BACKGROUND_PATH))
if BACKGROUND_PATH.exists()
else None
)
items = list(zip(data.category_data, data.data))
builder = chart_builders.bar_chart(
title=data.title, items=items, direction="horizontal"
2024-08-25 00:02:35 +08:00
)
if background_image_name:
builder.set_background_image(background_image_name)
return await ui.render(builder.build())