我有一个列表(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)
答案 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())