1

我想在 python 中创建简单的图表,如饼图和条形图。

我试过了CairoPlot,并且pycha。两者看起来都很棒,但它们似乎无法正确处理 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})

这行得通。

将 unicode 字符串转换为带有转义非 ascii 字符的 ascii 字符串的安全方法是什么?

编辑 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')
4

2 回答 2

1

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

于 2015-04-09T18:18:05.897 回答
1

小心在源代码中直接包含非 ASCII。您是否在源代码中包含编码提示?

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

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

于 2009-09-22T15:01:59.483 回答