Matplotlib xticks MemoryError

时间:2016-04-18 20:10:52

标签: python-2.7 matplotlib

我有一个列表(time)填充了时间戳(H:m:s)字符串,另一个(number)填充了数字。两个列表的长度相同,接近350,000个元素。

绘图不是问题,一切顺利,但添加行时出现问题

plt.xticks(range(len(number)), time, rotation=90, size='small')

我的脚本无法说

Traceback (most recent call last):
  File "G:\Documents\work\program.py", line 114, in <module>
    plt.xticks(range(len(number)), time, rotation=90, size='small')
  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 1674, in xticks
    locs = ax.set_xticks(args[0])
  File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 2850, in set_xticks
    ret = self.xaxis.set_ticks(ticks, minor=minor)
  File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1606, in set_ticks
    return self.get_major_ticks(len(ticks))
  File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1294, in get_major_ticks
    tick = self._get_tick(major=True)
  File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1675, in _get_tick
    return XTick(self.axes, 0, '', major=major, **tick_kw)
  File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 154, in __init__
    self.label1 = self._get_text1()
  File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 372, in _get_text1
    horizontalalignment=horiz,
MemoryError

matplotlib实际上太多了吗?或者我做错了什么? (除了使用Windows)

1 个答案:

答案 0 :(得分:0)

我想,350,000个刻度线只会产生一条宽线。将350,000个字符串彼此相邻写入也会产生相当难以阅读的标签。

尝试每10,000个刻度和数字:

plt.xticks(range(len(number))[::10000], time[::10000], rotation=90, size='small')

逐步缩小步骤以查看仍然可读的内容。

要使缩放工作,请使用plt.AutoLocator()

ax = plt.gca() # or use the reference to the axes you already have
ax.xaxis.set_major_locator(plt.AutoLocator())