Я хотел бы нарисовать гистограмму, используя matplotlib.Однако из-за огромных данных (список, содержащий около 100 000 чисел), которые я отправил в функцию hist (), при рисовании двух фигур возникнет ошибка.Но все идет гладко, пока рисует только один из двух графиков.Может ли кто-нибудь помочь мне справиться с этим?Заранее спасибо.
Вот упрощенный код для отображения ошибки:
f_120 = plt.figure(1)
plt.hist(taccept_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'b', label = 'accepted answer')
plt.hist(tfirst_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')
plt.axvline(x = 30, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min')
plt.axvline(x = 60, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour')
plt.legend()
plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')
plt.title('Cumulative histogram: time elapsed \n before questions receive answer (first 2 hrs)')
plt.ylim(0,1)
plt.xlim(0,120)
f_120.show()
f_120.savefig('7month_0_120.png', format = 'png' )
plt.close()
f_2640 = plt.figure(2)
plt.hist(taccept_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'b', label = 'accepted answer')
plt.hist(tfirst_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')
plt.axvline(x = 240, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '4 hours')
plt.axvline(x = 1440, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 day')
plt.legend(loc= 4)
plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')
plt.title('Cumulative histogram: time elapsed \n before questions receive answer (first 48)')
plt.ylim(0,1)
plt.xlim(0,2640)
f_2640.show()
f_2640.savefig('7month_0_2640.png', format = 'png' )
Ниже приводится подробное описание ошибки:
plt.hist (tfirst_list, bins =6000000, normed = True, histtype = "шаг", кумулятивный = True, цвет = 'g', метка = 'первый ответ')
Файл "C: \ software \ Python26 \ lib \ site-packages \"matplotlib \ pyplot.py ", строка 2160, в исторических значениях ret = ax.hist (x, ячейки, диапазон, нормированные, веса, совокупные значения, дно, показатель типа, выравнивание, ориентация, rwidth, log, цвет, метка, ** kwargs)
Файл "C: \ software \ Python26 \ lib \ site-packages \ matplotlib \ axes.py", строка 7775, в истории закрыт = False, edgecolor = c, fill = False))
Файл "C: \ software \ Python26 \ lib \ site-packages \ matplotlib \ axes.py", строка 6384, заполнение для poly в self._get_patches_for_fill (* args, ** kwargs):
Файл "C: \ software \ Python26 \ lib \ site-packages \ matplotlib \ axes.py", строка 317, в _grab_next_args для сегмента в self._plot_args (остальное, kwargs):
Файл "C: \программное обеспечение \ Python26 \ Lib \ сайт-Packages \ matplotlib \ axes.py ", строка 304, в _plot_args seg = func (x [:, j% ncx], y [:, j% ncy], kw, kwargs)
Файл" C:\ software \ Python26 \ lib \ site-packages \ matplotlib \ axes.py ", строка 263, в _makefill (x [:, np.newaxis], y [:, np.newaxis])),
Файл "C: \ software \ Python26 \ lib \ site-packages \ numpy \ core \ shape_base.py", строка 270, в hstack, возвращает _nx.concatenate (map (atleast_1d, tup), 1)
MemoryError