Highcharts导出服务命令行无法导出韦恩图,是否需要额外配置?
韦恩图导出失败排查及配置修改方案
前提说明
韦恩图不属于Highcharts基础核心功能,默认导出服务未加载对应依赖,所以必须做额外配置才能正常导出。
1. 导出服务额外配置要求
- 公共导出服务调用:在你的导出请求参数中增加
resources字段,指定预加载highcharts-more扩展包与venn专属模块,确保服务端渲染时可以识别venn图表类型。 - 私有部署导出服务:修改服务的预加载模块配置,把highcharts-more和venn两个模块加入加载列表,修改后重启导出服务即可生效。
2. 你提交的JSON配置需修正的问题
你当前提交的配置本身存在多处错误,也会导致导出结果异常,具体修改点如下:
{ "plotOptions": { "venn": { "borderColor": "transparent" }, "series": { "maxPointWidth": 30 } }, "credits": false, "legend": { "layout": "vertical", "verticalAlign": "middle", "align": "right", "enabled": false }, "series": [{ "type": "venn", "dataLabels": { "enabled": false }, "data": [ { "legendVennDiagram3": ["<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">15%</strong> IPs WITH MALWRAE INFECTION</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">3%</strong> 3 IPs BLACKLISTED</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">5%</strong> 5 INFECTED WITH CNCs</span>"], "sets": ["A"], "color": "#ffb81c", "vennDiagramSubtitle": "<div class=\"subtitle-venn-chart\"><strong class=\"mr10\">85%</strong> <span class=\"weight200\"> 85 IPS NOT INFECTED</span></div>", "title": "EXTERNAL IP MALWARE INFECTION SUMMARY", "value": 10 }, { "legendVennDiagram3": ["<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">15%</strong> IPs WITH MALWRAE INFECTION</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">3%</strong> 3 IPs BLACKLISTED</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">5%</strong> 5 INFECTED WITH CNCs</span>"], "sets": ["C"], "color": "#e30000", "vennDiagramSubtitle": "<div class=\"subtitle-venn-chart\"><strong class=\"mr10\">85%</strong> <span class=\"weight200\"> 85 IPS NOT INFECTED</span></div>", "title": "EXTERNAL IP MALWARE INFECTION SUMMARY", "value": 3 }, { "legendVennDiagram3": ["<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">15%</strong> IPs WITH MALWRAE INFECTION</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">3%</strong> 3 IPs BLACKLISTED</span>", "<span class=\"weight200\"><strong class=\"font-size-1-2em mr10\">5%</strong> 5 INFECTED WITH CNCs</span>"], "sets": ["B"], "color": "#ff8319", "vennDiagramSubtitle": "<div class=\"subtitle-venn-chart\"><strong class=\"mr10\">85%</strong> <span class=\"weight200\"> 85 IPS NOT INFECTED</span></div>", "title": "EXTERNAL IP MALWARE INFECTION SUMMARY", "value": 7 }, { "sets": ["A", "B"], "color": "#ff8319", "value": 6.999 }, { "sets": ["B", "C"], "color": "#e30000", "value": 2.999 } ] }], "subtitle": { "text": "<div style=\"align: center; border: 2px solid #F2F2F2; padding: 2px 20px;\"><span style><b>85%</b> 85 IPS NOT INFETCED<span></div>", "style": { "color": "#34c52d", "fontWeight": 400 }, "useHTML": true, "align": "center" }, "tooltip": { "enabled": false }, "width": 0, "style": { "height": "300px" }, "title": { "text": "EXTERNAL IP MALWARE INFECTION SUMMARY" }, "plotBorderWidth": 0, "chart": { "type": "venn", "marginLeft": 250 }, "height": 0 }
- 宽高配置错误:删除
width:0和height:0两项,或改为你需要的实际像素值,否则导出画布尺寸为0,无法生成正常图片。 - 自定义样式问题:你配置里的自定义HTML内容使用了业务侧专属的CSS类名,导出服务不会加载你本地的CSS文件,会导致文本样式异常,需要把所有样式规则直接写到对应标签的
style属性里。 - 交集数值问题:你当前设置的交集值几乎等于较小集合的总数值,会导致视觉上小集合完全嵌套在大集合里,和常规韦恩图的显示效果不符,可以根据你实际的业务占比调整交集数值。
3. 验证建议
调整完上述配置后,先在本地Highcharts环境测试图表可以正常渲染,再调用导出服务,可大幅降低排查成本。
内容的提问来源于stack exchange,提问作者Chandrabhushan Prakash
相关产品推荐
相关产品推荐

