如何用pygal实现y轴长标签换行,解决换行符被渲染为空格问题
Pygal Y轴长标签换行失效解决方案
Pygal 生成的是 SVG 格式的图表,标签渲染遵循 HTML/SVG 文本解析规则,常规的 \n 换行符会被识别为普通空白字符,不会触发换行效果,这和 Matplotlib 直接渲染文本的逻辑不同。
修复方法
把原来用 \n 拼接拆分后文本的逻辑,替换为用 HTML 换行标签 <br> 拼接即可,修改后的代码如下:
from textwrap import wrap labels = ['<br>'.join(wrap(l, 20)) for l in labels]
可选优化配置
如果换行后标签存在显示不全、被截断的问题,可以添加如下图表配置预留足够显示空间:
import pygal # 以柱状图为例,其他图表类型配置通用 chart = pygal.Bar() # 调整Y轴标签边距,避免相邻标签重叠 chart.y_label_margin = 15 # 自定义Y轴标签区域宽度,适配换行后的长标签 chart.y_labels_width = 220
内容的提问来源于stack exchange,提问作者TopTofu
相关产品推荐
相关产品推荐

