【发布时间】:2009-09-22 14:55:21
【问题描述】:
我想在 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 的模块?或者您是否让CairoPlot 或pycha 正确显示Unicode?
我更喜欢内部解决方案,所以谷歌图表不是我想要的。
编辑
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')
【问题讨论】:
-
如果 unicode 字符串不起作用,这是您正在使用的模块中的一个错误,您应该报告它。如果他们真的需要 latin-1 编码的字符串,他们也应该很好地记录下来。
-
我今天早些时候打开了一张票。
标签: python unicode encoding charts cairoplot