使用pygal的render_to_png生成图片时中文乱码问题

  • 使用pygal的render_to_png生成图片时中文乱码问题时,可采取下列方法解决
    • 1)from pygal.sytle import Style
    • 2)定义一个Style对象,设置font_family属性为支持中文的字体
    • 3)pygal绘图时传入该Style对象作为其style属性

话不多说,直接上例子

import pygal
from pygal.style import Style

# 创建pygal.style.Style对象,设置字体为Yahei Consolas Hybrid
# Yahei Consolas Hybrid非系统自带字体,需要自行安装
# 若系统中未安装Yahei Consolas Hybrid字体,可以用SimHei代替
style = Style(font_family="Yahei Consolas Hybrid")

x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']
# 定义2个列表分别作为两组柱状图的Y轴数据
y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000]
y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700]

# 创建line对象,将该对象的style属性设置为前面定义的style
# 从未使得图片中字体为Yahei Consolas Hybrid,支持中文显示)
line = pygal.Line(style=style)
# 添加两组折线数据
line.add('疯狂Java讲义', y_data)
line.add('疯狂Android讲义', y_data2)
# 设置X轴的刻度值
line.x_labels = x_data
# 重新设置Y轴的刻度值
line.y_labels = range(20000, 120000, 20000)
# 设置X、Y轴的标题
line.x_title = '年份'
line.y_title = '销量'
# 设置将图例放在底部
line.legend_at_bottom = True
# 设置将图片输出到SVG图片中
# line.render_to_file('line.svg')
line.render_to_png('line.png')

说明:该例子修改自《疯狂Python讲义》19.4\pygal_line_test.py

你可能感兴趣的:(Python学习笔记)