创建饼图,展示一个季度内容的整体分布 Args: articles (list): 文章数量列表 projects (list): 项目数量列表 audio_video (list): 音视频数量列表 hot_topics (list): 讨论话题数量列表 books (list): 赠书数量列表 color_map (dict): 内容类型与颜色的映射 Returns: Pie: pyecharts Pie 图表对象
(articles, projects, audio_video, hot_topics, books, color_map)
| 107 | return bar |
| 108 | |
| 109 | def create_pie_chart(articles, projects, audio_video, hot_topics, books, color_map): |
| 110 | """ |
| 111 | 创建饼图,展示一个季度内容的整体分布 |
| 112 | |
| 113 | Args: |
| 114 | articles (list): 文章数量列表 |
| 115 | projects (list): 项目数量列表 |
| 116 | audio_video (list): 音视频数量列表 |
| 117 | hot_topics (list): 讨论话题数量列表 |
| 118 | books (list): 赠书数量列表 |
| 119 | color_map (dict): 内容类型与颜色的映射 |
| 120 | |
| 121 | Returns: |
| 122 | Pie: pyecharts Pie 图表对象 |
| 123 | """ |
| 124 | pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.ESSOS)) |
| 125 | categories = ['文章', '项目', '音视频', '讨论', '赠书'] |
| 126 | total_counts = [sum(articles), sum(projects), sum(audio_video), sum(hot_topics), sum(books)] |
| 127 | category_colors = [color_map.get(category, "#000000") for category in categories] |
| 128 | pie.add( |
| 129 | "", |
| 130 | [list(z) for z in zip(categories, total_counts)], |
| 131 | radius="66%", |
| 132 | label_opts=opts.LabelOpts(formatter="{c} ({d}%)"), |
| 133 | itemstyle_opts={ |
| 134 | "color": JsCode(""" |
| 135 | function(params) { |
| 136 | var colorList = """ + str(category_colors) + """; |
| 137 | return colorList[params.dataIndex]; |
| 138 | } |
| 139 | """) |
| 140 | } |
| 141 | ) |
| 142 | return pie |
| 143 | |
| 144 | def create_echarts_tab(data, start, end, bar_tab, pie_tab, wc_tab, tab_name): |
| 145 | """ |
no outgoing calls
no test coverage detected