繁体   English   中英

在Matplotlib和OSX中使用数学模式和下标时出现错误的偏移量

[英]Wrong offset when using math mode and subscripts in Matplotlib and OSX

我有一些图,我想在某些标签中使用子索引,但是每当我使用数学模式时,所有标签都会出现偏移。 我可以为所有标签设置一些偏移吗? 使用数学模式有什么我想念的吗?

这是标签中没有数学模式的绘图: 在此处输入图片说明

这是数学模式下的样子(注意刻度): 在此处输入图片说明

供参考,这是我的完整代码(我从中获得了堆叠的代码):

import numpy as NP
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import matplotlib.cm as cm
data = '''0    0    0    0    0    0    0    0
0    0    0    0    0    0    0.015    0.015
0    0    0    0    0    0    0    0
0    0    0    0    0.04    0.04    0    0
0    0    0    0    0.03    0.01    0.19    0.14
0    0    0.772    0    0.07    0.01    0.12    0.11
0    0.879    0    0    0    0.07    0    0.085
0.056    0    0    0    0    0    0    0
'''.splitlines()
data = tuple(reversed([NP.array([float(j) for j in i.split('    ')]) for i in data]))
colors = cm.rainbow(NP.linspace(0, 1, 8))
axes = plt.figure().add_subplot(111)
axes.set_xticklabels([r'$m_%d$'%i for i in ([i+1 for i in range(8)])])
plt.stackplot(NP.arange(8)+1,
          data, 
          colors=colors)
plt.xlim(1,8)
plt.ylabel("Error")  
plt.legend([mpatches.Patch(color=i) for i in colors], 
           [r'$m_%d$'%i for i in ([i+1 for i in range(8)])])
plt.show()

更新:问题存在于用于交互式显示的后端

按照注释中提供的提示,我尝试将其写入文件,并且标签正确显示。 问题似乎出在MacOSX后端。

  • 达尔文上的Python 2.7.9(默认值,2014年12月11日,02:36:08)[GCC 4.2.1兼容的Apple LLVM 5.1(clang-503.0.40)]
  • matplotlib。 版本 1.4.3
  • matplotlib.get_backend()MacOSX

Matplotlib的MacOSX后端似乎有一个错误。 为了解决这个问题,我不得不切换后端。 我从FAQ( http://matplotlib.org/faq/usage_faq.html#what-is-a-backend )中尝试了几种,使用WXAgg可获得最佳效果。 TkAgg非常缓慢,WX不支持数学模式。 如果有人感兴趣,导入pyplot之前要添加的代码是:

import matplotlib
matplotlib.use('WXAgg')

这是结果(看起来都有些不同):

WXAgg 在此处输入图片说明

TkAgg 在此处输入图片说明

WX 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM