2013-07-08 10 views
5

Kann nicht den Titel direkt in matplotlib erhalten: 'technologieën in °C' gibt: technologieÃn in ÃC mögliche Lösungen bereits versucht: u'technologieën in °C 'doens't Arbeit und auch nicht: # -*- coding: utf-8 -*- am Anfang der Codedatei. Irgendwelche Lösungen?Unicode oder was in Matplotlib?

+0

funktioniert gut für mich: http://ideone.com/nhrP0m –

+0

@AshwiniChaudhary: Das ist, weil Sie in die richtige Codierung für die IDEOne.com Ausgabecodierung Glück und eingefügt habe. Oder Ihre Terminalcodierung. Aber eine Terminal- oder IDEOne.com-Seitencodierung ist nicht dasselbe wie eine matplotlib-generierte Ausgabe. –

Antwort

11

Sie müssen in Unicode Text weitergeben müssen:

u'technologieën in °C' 

Sie sicherstellen, dass Sie verwenden, um die # -*- coding: utf-8 -*- Kommentar an der Spitze, und stellen Sie sicher, dass Ihr Texteditor tatsächlich ist, dass Codec. Wenn Ihr Editor die Datei als Latin-1-kodierten Text speichert, verwenden Sie diesen Codec in der Kopfzeile usw. Der Kommentar teilt Python mit, wie er Ihre Quelldatei interpretiert, besonders wenn es um das Parsen von String-Literalen geht.

Alternativ verwenden Escape-Codes für alles Nicht-ASCII in Ihrer Unicode-Literale:

u'technologie\u00ebn in \u00b0C' 

und vermeidet die Frage, was Codec in erster Linie zu verwenden.

Ich fordere Sie zu lesen:

bevor Sie fortfahren.

+0

Die einzige Lösung, die funktioniert, ist diese: u'technologie \ u00eBN in \ u00b0C '. # - * - Codierung: utf-8 - * - in Kombination mit u'technologieën in ° C 'funktioniert nicht. – Jomme

+0

Dann verwendet die Codierung, die Ihr Texteditor verwendet, * nicht * den Codec, den Sie oben im Kommentar angegeben haben. Wenn Ihr Editor die aktuelle Windows-Codepage verwendet, ändern Sie ihn zum Beispiel in 'cp1252' (Windows Latin 1-Variante) anstelle von UTF8. Da Ihr Text Niederländisch ist (hoi!), Wäre das meine erste Vermutung. –

+0

# -- coding: cp1252 --
funktioniert nicht. Ich arbeite mit Spyder. – Jomme

0

In Python3 müssen Sie sich nicht um all die problematischen UTF-8-Probleme kümmern.

Eine Anmerkung, dass Sie vor dem Plotten eine Unicode-Schriftart festlegen müssen.

matplotlib.rc('font', family='Arial')

Verwandte Themen