Highcharts制作Python课程评分饼图仅显示标题无渲染问题求助
饼图不渲染问题排查方案
- 首先解决配置格式错误:你传入
HighCharts的options参数要求接收字典类型,你现在直接传入的是JS对象格式字符串,无法被Python侧解析识别,需要先导入json模块,将配置转为标准JSON格式后转字典再使用。 - 移除重复导入的
justpy库,避免不必要的命名空间冗余。 - 确认本地
reviews.csv文件路径正确,且文件内包含Course Name、Rating两个必填字段,否则分组统计得到的share为空,也会导致饼图无数据渲染。 - 可选修正:你代码里的
Analaysis为拼写错误,正确拼写为Analysis,不影响功能仅影响展示效果。
修正后可运行代码
import json import justpy as jp import pandas as pa from datetime import datetime from pytz import utc # 确保csv文件路径正确 data = pa.read_csv("reviews.csv", parse_dates=['Timestamp']) share = data.groupby(['Course Name'])['Rating'].count() # 调整为标准JSON格式,所有键用双引号包裹 chart_def = """ { "chart": { "plotBackgroundColor": null, "plotBorderWidth": null, "plotShadow": false, "type": "pie" }, "title": { "text": "课程评分占比情况" }, "tooltip": { "pointFormat": "{series.name}: <b>{point.percentage:.1f}%</b>" }, "accessibility": { "point": { "valueSuffix": "%" } }, "plotOptions": { "pie": { "allowPointSelect": true, "cursor": "pointer", "dataLabels": { "enabled": true, "format": "<b>{point.name}</b>: {point.percentage:.1f} %" } } }, "series": [{ "name": "占比", "colorByPoint": true, "data": [] }] } """ def app(): wp = jp.QuasarPage() h1 = jp.QDiv(a = wp, text = "课程评论分析", classes='text-h3 text-center q-pa-md') p1 = jp.QDiv(a = wp, text = "这些图表展示课程评论的分析结果") # 先将JSON字符串转为字典再传入 chart_options = json.loads(chart_def) hc = jp.HighCharts(a= wp, options = chart_options) hc_data = [{"name":v1, "y":int(v2)} for v1, v2 in zip(share.index, share)] hc.options.series[0].data = hc_data return wp jp.justpy(app)
内容的提问来源于stack exchange,提问作者EpicNinja
相关产品推荐
相关产品推荐

