سؤال

أريد إنشاء مخططات بسيطة مثل الفطائر والحانات في بيثون.

حاولت ذلك 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 عرض أحادي الأطفال بشكل صحيح؟

أفضل الحل المنزلي، لذا فإن مخطط Google ليس ما أريد.

تعديل

وجواب الحديد جعلني جرب هذا

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.

بالنسبة لبشا، عملت بنفس الطريقة

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')
هل كانت مفيدة؟

المحلول

كن حذرا بما في ذلك غير ASCII مباشرة في المصدر الخاص بك. هل أنت بما في ذلك تلميح ترميز في المصدر الخاص بك؟

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

وبالطبع، هل أنت متأكد من أن محرر الخاص بك هو حفظ الملف بشكل صحيح في الترميز الذي تعتقد أنه؟ ما زال الرهان الأكثر أمانا للحفاظ على المصدر في ASCII ولإجراء حرفي سلسلة Unicode مع أحرف غير ASCII الهارب (مثل uxxxx حيث xxxx هو codePoint).

نصائح أخرى

حاول استخدام مكتبة طرف ثالثة لاستبدال Unicode القمامة، وسأكون سعيدا بتزويدك بأحد المرافق المهنية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top