Gráficos con el apoyo adecuado Unicode
Pregunta
Quiero crear gráficos simples, como las empanadas y bares de pitón.
Probé CairoPlot
y pycha
. Ambos se ven increíble, pero no parecen ser capaces de manejar adecuadamente los caracteres Unicode.
CairoPlot.pie_plot(name='test.png', width=800, height=600,
data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,u'fünf':187})
Resultado de fünf
en lugar de fünf
.
¿Hay un módulo de fácil uso con soporte para Unicode probada? o hiciste CairoPlot
o pycha
muestran los unicodes correctamente?
Yo prefiero solución interna, por lo que Google gráfico no es lo que quiero.
editar
La respuesta de ironfroggy me hizo probar este
CairoPlot.pie_plot(name='test.png', width=800, height=600,
data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,'f\xc3\xbcnf':187})
esto funciona.
¿Qué es una manera segura de convertir Unicode cadenas a cadenas ASCII con caracteres no ASCII de escape?
editar 2
u'fünf'.encode('latin-1')
hace el truco. Gracias!
editar 3
para pycha funcionaba de la misma manera
dataSet = (
('dataSet 1', ((0, 1), (1, 3), (2, 2.5))),
('dataSet 2', ((0, 2), (1, 4), (2, 3))),
(u'dataSet Ü'.encode('latin-1'), ((0, 5), (1, 1), (2, 0.5))),
)
chart = pycha.bar.VerticalBarChart(surface)
chart.addDataset(dataSet)
chart.render()
surface.write_to_png('output.png')
Solución
Tenga cuidado incluyendo no ASCII directamente en su fuente. ¿Está incluido un indicio de codificación en la fuente?
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
Y, por supuesto, ¿está seguro de que su editor está ahorrando adecuadamente el archivo en la codificación cree que es? La apuesta más segura es todavía para mantener la fuente en ASCII y hacer literales de cadena Unicode con caracteres no ASCII de escape (como \ uxxxx XXXX es el punto de código).
Otros consejos
Trate de usar una biblioteca de terceros para reemplazar el Unicode de basura, voy a ser feliz para ofrecerle un uno sobre el consulation profesional