如何将Unicode标题传递给matplotlib?

问题描述 投票:5回答:2

无法在matplotlib中正确获得标题:'technologieën in °C'给出:technologieÃn in ÃC

可能的解决方案已经尝试:

  • u'technologieën in °C'无效
  • 都不:代码文件开头的# -*- coding: utf-8 -*-

任何解决方案?

python matplotlib unicode python-2.x
2个回答
12
投票

您需要传递unicode文本:

u'technologieën in °C'

请确保使用顶部的# -*- coding: utf-8 -*-注释,并确保您的文本编辑器实际上正在使用该编解码器。如果您的编辑器将文件另存为Latin-1编码的文本,请在标头中使用该编解码器等。该注释将与Python交流如何解释您的源文件,尤其是在解析字符串文字时。

或者,对您的Unicode文字中的任何非ASCII使用转义码:

u'technologie\u00ebn in \u00b0C'

并且首先避免使用哪种编解码器。

我敦促您阅读:

继续之前。

大多数字体将支持°,但是如果看到显示的是一个框,则表示字体有问题,需要切换为支持您尝试显示的字符的字体。例如,如果Ariel支持您所需的字符,请使用:

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

绘制之前。


0
投票

在Python3中,无需担心所有麻烦的UTF-8问题。

注意,在绘制之前,您需要设置Unicode字体。

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

© www.soinside.com 2019 - 2024. All rights reserved.