Files
zhenxun_bot/zhenxun/utils/echart_utils/__init__.py
T

35 lines
842 B
Python
Raw Normal View History

2024-10-12 11:03:24 +08:00
import os
from pathlib import Path
2024-10-12 11:03:24 +08:00
import random
from zhenxun import ui
from zhenxun.ui.models.charts import EChartsData
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
2024-10-12 11:03:24 +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))
chart_data = EChartsData.bar_chart(
title=data.title,
items=items, # type: ignore
direction="horizontal",
background_image=background_image_name,
2024-08-25 00:02:35 +08:00
)
return await ui.render(chart_data)