图表具有适当的unicode支持

时间:2009-09-22 14:55:21

标签: python unicode encoding charts cairoplot

我想在python中创建像pies和bars这样的简单图表。

我试用了CairoPlotpycha。两者看起来都很棒,但它们似乎无法正确处理unicode字符。

CairoPlot.pie_plot(name='test.png', width=800, height=600, 
                   data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,u'fünf':187})

导致fünf而不是fünf

是否有一个易于使用的模块,已经证明支持unicode?或者您是否CairoPlotpycha正确显示了unicodes?

我更喜欢内部解决方案,因此谷歌图表不是我想要的。

修改

ironfroggy的回答让我试试这个

CairoPlot.pie_plot(name='test.png', width=800, height=600, 
                   data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,'f\xc3\xbcnf':187})

这有效。

使用转义的非ascii字符将unicode-string转换为ascii-strings的安全方法是什么?

编辑2

u'fünf'.encode('latin-1')

诀窍。谢谢!

编辑3

对于pycha,它以同样的方式工作

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')

2 个答案:

答案 0 :(得分:1)

请注意在源中直接包含非ASCII。您是否在源代码中包含了编码提示?

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

当然,您确定您的编辑器正确地将文件保存在您认为的编码中吗?最安全的做法仍然是保持ASCII源并使用转义的非ASCII字符(如\ UXXXX,其中XXXX是您的代码点)执行unicode字符串文字。

答案 1 :(得分:1)

尝试使用第三方库替换垃圾unicode,我很乐意为您提供专业咨询服务