Я не буду притворяться, что понимаю, почему, но переключение на строки Unicode решает проблему. Это может быть причиной того, что некоторые другие испытывают проблему: в Python 3 все строки по умолчанию имеют Unicode.
Вам нужно будет объявить свой шаблон как литерал Unicode, добавив к строке префикс u
. Затем скажите pygal вернуть Unicode при рендеринге диаграммы, передав is_unicode=True
в качестве аргумента функции render
.
Пример:
from IPython.display import HTML
import pygal
html_pygal = u"""
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://kozea.github.com/pygal.js/javascripts/svg.jquery.js"></script>
<script type="text/javascript" src="http://kozea.github.com/pygal.js/javascripts/pygal-tooltips.js"></script>
</head>
<body><figure>{pygal_render}</figure></body>
</html>
"""
line_chart = pygal.Line()
line_chart.title = "Browser usage evolution (in %)"
line_chart.x_labels = map(str, range(2002, 2013))
line_chart.add("Firefox", [None, None, 0, 16.6, 25, 31, 36.4, 45.5, 46.3, 42.8, 37.1])
line_chart.add("Chrome", [None, None, None, None, None, None, 0, 3.9, 10.8, 23.8, 35.3])
line_chart.add("IE", [85.8, 84.6, 84.7, 74.5, 66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])
line_chart.add("Others", [14.2, 15.4, 15.3, 8.9, 9, 10.4, 8.9, 5.8, 6.7, 6.8, 7.5])
HTML(html_pygal.format(pygal_render=line_chart.render(is_unicode=True)))