使用matplotlib在python中的xkcd注释中不打断行

使用matplotlib在python中的xkcd注释中不打断行,python,matplotlib,Python,Matplotlib,我想知道使用xkcd的绘图中的换行符是如何工作的。如果我使用 import matplotlib.pyplot as plt #plt.xkcd() plt.annotate('Testing\nThis\nOut', xy=(0.5, 0.5)) plt.show() 输出如预期,但没有xkcding。注释plt.xkcd()in,后面的注释 “测试”消失了 我用python3.3和2.7进行了尝试,py33和py27 matplotlib在Mac0SX上安装了端口。plt.xkcd()

我想知道使用xkcd的绘图中的换行符是如何工作的。如果我使用

import matplotlib.pyplot as plt
#plt.xkcd()
plt.annotate('Testing\nThis\nOut', xy=(0.5, 0.5))

plt.show()

输出如预期,但没有xkcding。注释
plt.xkcd()
in,后面的注释 “测试”消失了

我用python3.3和2.7进行了尝试,py33和py27 matplotlib在Mac0SX上安装了端口。

plt.xkcd()
MacOSX
matplotlib后端不受很好的支持,我假设您正在使用它。这超出了换行符的范围;轴也是直的,不是波浪形的。有关更多信息,请参阅

正如这里所建议的,使用另一个后端是推荐的解决方案。如果您使用的是IPython笔记本电脑,
inline
后端将运行良好;例如,使用

ipython notebook --pylab inline
您的代码将与
plt.xkcd()
一起正常工作

QT4Agg
后端也可以工作。要使用该后端,您可以在代码的开头添加以下内容:

import matplotlib
matplotlib.use('QT4Agg')

然而,这需要安装后端,它需要Qt4/PyQt4。

无论如何,我不能用matplotlib 1.3.0和Python 2.7.5在Ubuntu 13.04.Hm上使用IPython 1.0.0复制这个结果,我用matplotlib 1.3.0和Python 2.7.5和Python 3.2。我首先在iPython中看到了这种行为,但现在使用bash。几个小时后我就可以在Ubuntu上测试自己了。我意外地解决了这个问题,然后读了你的解释。输出与链接中指出的完全相同。但是,由于一些错误消息,我实际上不可能使用您的解决方案:我意外地解决了这个问题,然后阅读了您的解释。输出与链接中指出的完全相同。但是,由于一些错误消息,我实际上无法使用您的解决方案。在matplotlib.use('QT4Agg')引发错误后导入matplotlib.pyplot。目前对我有效的解决方案是使用pylab.savefig('example.pdf')。我会尝试你的建议,但不知怎的,我觉得我需要再次询问这些错误…这几乎可以肯定,因为你没有安装Qt4和PyQt4。使用ipython笔记本可以工作,正如您所注意到的,保存不使用MacOSX后端的图形也可以工作。