Я пытаюсь построить 20 миллионов точек данных, однако это занимает очень много времени (в течение часа) с использованием Matplotlib,Matplotlib сюжет слишком медленно
Есть ли что-то в моем коде, что делает это необычно медленно?
import csv
import matplotlib.pyplot as plt
import numpy as np
import Tkinter
from Tkinter import *
import tkSimpleDialog
from tkFileDialog import askopenfilename
plt.clf()
root = Tk()
root.withdraw()
listofparts = askopenfilename() # asks user to select file
root.destroy()
my_list1 = []
my_list2 = []
k = 0
csv_file = open(listofparts, 'rb')
for line in open(listofparts, 'rb'):
current_part1 = line.split(',')[0]
current_part2 = line.split(',')[1]
k = k + 1
if k >= 2: # skips the first line
my_list1.append(current_part1)
my_list2.append(current_part2)
csv_file.close()
plt.plot(my_list1 * 10, 'r')
plt.plot(my_list2 * 10, 'g')
plt.show()
plt.close()
Я удалил части вашего вопроса, касающиеся рекомендации библиотеки, поскольку эти вопросы не относятся к теме [so]. – Sayse
Профилировали ли вы свой код, чтобы найти узкие места. На моем ПК 1 миллион случайных данных накладывается на секунды, а 2 миллиона и больше указывает на ошибку «В draw_path: предел превышения ячейки». Также можно предложить библиотеку PyQtgraph. –
Спасибо. Я получал ошибку «Ошибка переполнения: выделено слишком много блоков» при запуске более 1 миллиона точек данных, но я исправил это, добавив matplotlib.pyplot.rcParams ['agg.path.chunksize'] = 20000. Однако даже работа 100 000 точек данных занимают не менее 20 минут. У моего ноутбука только 4 ГБ памяти, может ли проблема быть полностью с моим ноутбуком? – darrenvba