У меня есть данные (данные) в пандах, у которых есть datetimeindex (около 25 000 дней данных) и 527 столбцов идентификаторов.Участок двоичной матрицы в пандах
work_id_10 work_id_100 work_id_1007 work_id_1009
concert_date
1917-01-27 0 0 0 0
1917-01-28 0 0 0 0
1917-01-29 0 0 0 0
1917-01-30 0 0 0 0
1917-01-31 0 0 0 0
Каждый идентификатор столбца указывает наличие или отсутствие конкретного идентификатора либо 0 (отсутствие), либо 1 (наличие). Итак, в основном у меня есть матрица двоичных значений.
Теперь я хочу создать график, который имеет все даты на оси x, и для каждого идентификатора столбца - как точки. Я использую ipython.
%matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_yticklabels(data.index)
ax.set_xticklabels(data.columns)
plt.imshow/data, cmap='Greys', interpolation='none')
Это дает мне MemoryError:
Traceback (most recent call last):
File "C:\Python27\Lib\lib-tk\Tkinter.py", line 1486, in __call__
return self.func(*args)
File "C:\Python27\Lib\lib-tk\Tkinter.py", line 533, in callit
func(*args)
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", lin
e 365, in idle_draw
self.draw()
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", lin
e 349, in draw
FigureCanvasAgg.draw(self)
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line
469, in draw
self.figure.draw(self.renderer)
File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
draw(artist, renderer, *args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 1079, in draw
func(*args)
File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
draw(artist, renderer, *args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 2092, in d
raw
a.draw(renderer)
File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
draw(artist, renderer, *args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\image.py", line 367, in draw
self._draw_unsampled_image(renderer, gc)
File "C:\Python27\lib\site-packages\matplotlib\image.py", line 321, in _draw_u
nsampled_image
self._get_unsampled_image(self._A, extent_in_ic, viewLim_in_ic)
File "C:\Python27\lib\site-packages\matplotlib\image.py", line 219, in _get_un
sampled_image
x = (x * 255).astype(np.uint8)
MemoryError
Это правильный подход, и почему я получаю MemoryError?
Спасибо!
Не видя больше своего кода и минимального примера своих данных, сложно дать вам что-то, что работает. Предполагая, что вы сделали что-то вроде 'fig, ax = plt.subplots()', тогда ваш 'plt.plot (...)' вы хотите установить ваши метки оси y так, как это: 'ax.set_yticklabels (что-то)' где-то список имен столбцов. – Scott
Спасибо, @Scott за то, что указал мне в правильном направлении. У меня не было никакого другого кода, но я попробовал это и теперь столкнулся с MemoryError. Я обновил свой первоначальный вопрос. Спасибо, что посмотрели на него снова! – DigitalMusicology
Разделите проблему вверх. Например, закомментируйте строки с меткой метки, все еще разрывается? Сделайте это с помощью фиктивных «данных» из четырех-четырех единиц и нулей; все еще сломан? И т. Д. Замените «/» в последней строке выборки на «(». (Я настоятельно рекомендую работать в файле сценария вместо интерпретатора. Другие отличаются, но пока вы учитесь, не настраивайте себя на сокращение -and-paste.) – cphlewis