import re import asyncio from aiohttp import TCPConnector, ClientSession import pyecharts.options as opts from pyecharts.charts import TreeMap """ Gallery 使用 pyecharts 1.1.0 参考地址: https://echarts.apache.org/examples/editor.html?c=treemap-drill-down 目前无法实现的功能: 1、层级的样式配置 """ async def get_json_data(url: str) -> dict: async with ClientSession(connector=TCPConnector(ssl=False)) as session: async with session.get(url=url) as response: return await response.json() # 获取官方的数据 data = asyncio.run( get_json_data( url="https://echarts.apache.org/examples/data/asset/data/" "ec-option-doc-statistics-201604.json" ) ) tree_map_data: dict = {"children": []} def convert(source, target, base_path: str): for key in source: if base_path != "": path = base_path + "." + key else: path = key if re.match(r"/^\$/", key): pass else: child = {"name": path, "children": []} target["children"].append(child) if isinstance(source[key], dict): convert(source[key], child, path) else: target["value"] = source["$count"] convert(source=data, target=tree_map_data, base_path="") ( TreeMap(init_opts=opts.InitOpts(width="1200px", height="720px")) .add( series_name="option", data=tree_map_data["children"], visual_min=300, leaf_depth=1, # 标签居中为 position = "inside" label_opts=opts.LabelOpts(position="inside"), ) .set_global_opts( legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts( title="Echarts 配置项查询分布", subtitle="2016/04", pos_left="leafDepth" ), ) .render("echarts_option_query.html") )
时间: 2024-03-31 08:33:08 浏览: 72
aiohttp:用于asyncio和Python的异步HTTP客户端服务器框架
这段代码是一个Python程序,它使用了多个第三方库和模块,包括re、asyncio、aiohttp、pyecharts等。
这个程序的主要功能是获取一个JSON格式的数据,然后将其转换为树状图数据,并使用pyecharts库生成一个树状图的可视化图表。
具体来说,程序首先通过异步方式获取一个JSON格式的数据,然后将其转换为树状图数据,最后使用pyecharts库生成一个树状图的可视化图表,并将其保存为HTML文件。
其中,convert()函数是一个递归函数,用于将JSON格式的数据转换为树状图数据。这个函数接受三个参数:source表示待转换的JSON数据,target表示最终的树状图数据,base_path表示当前JSON数据的路径。函数首先遍历JSON数据中的每个键值对,如果该键以"$"开头,则忽略该键;否则,将该键作为节点的名称,创建一个新的子节点,并将其添加到树状图数据中。如果该键对应的值是一个字典类型的数据,则递归调用convert()函数,将其转换为子节点;否则,将该键对应的"$count"值作为节点的权重,将其添加到父节点中。最终,convert()函数返回转换后的树状图数据。
在主程序中,使用pyecharts库创建一个TreeMap对象,并将树状图数据作为数据源,设置一些可视化选项和样式,最后调用render()方法将图表保存为HTML文件。
阅读全文