Почему первый график, обработанный Matplotlib или pandas df.plot, работает очень медленно по сравнению со всеми последующими графиками. Это происходит даже тогда, когда последующие графики используют совершенно другие переменные. Есть ли какое-то решение увеличить скорость первого сюжета?
Пример:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import time
import random
# 1st DataFrame
data1 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df1 = pd.DataFrame(data1)
# 2nd DataFrame
data2 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df2 = pd.DataFrame(data2)
# 3rd DataFrame
data3 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df3 = pd.DataFrame(data3)
# Plot and save 1st df using pandas plot
start = time.time()
ax1 = df1.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 1 Plot')
ax1.set_xlabel('X')
ax1.set_ylabel('Values')
ax1.grid(True)
plt.savefig('dataframe1_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 1: {end - start:.2f} seconds")
# Plot and save 2nd df using pandas plot
start = time.time()
ax2 = df2.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 2 Plot')
ax2.set_xlabel('X')
ax2.set_ylabel('Values')
ax2.grid(True)
plt.savefig('dataframe2_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 2: {end - start:.2f} seconds")
# Plot and save 3rd df using pandas plot
start = time.time()
ax3 = df3.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 3 Plot')
ax3.set_xlabel('X')
ax3.set_ylabel('Values')
ax3.grid(True)
plt.savefig('dataframe3_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 3: {end - start:.2f} seconds")
Когда я смотрю на результаты time.time, я всегда получаю что-то похожее на это:
Time for plot 1: 134.06 seconds
Time for plot 2: 0.29 seconds
Time for plot 3: 0.23 seconds
Подробнее здесь: https://stackoverflow.com/questions/793 ... -very-slow
Сюжет Pandas или первый сюжет matplotlib очень медленный ⇐ Python
Программы на Python
-
Anonymous
1737237481
Anonymous
Почему первый график, обработанный Matplotlib или pandas df.plot, работает очень медленно по сравнению со всеми последующими графиками. Это происходит даже тогда, когда последующие графики используют совершенно другие переменные. Есть ли какое-то решение увеличить скорость первого сюжета?
Пример:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import time
import random
# 1st DataFrame
data1 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df1 = pd.DataFrame(data1)
# 2nd DataFrame
data2 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df2 = pd.DataFrame(data2)
# 3rd DataFrame
data3 = {
'X': range(10),
'Y': [x**2 for x in random.sample(range(1, 100), 10)],
'Z': [x*2 for x in random.sample(range(1, 100), 10)]
}
df3 = pd.DataFrame(data3)
# Plot and save 1st df using pandas plot
start = time.time()
ax1 = df1.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 1 Plot')
ax1.set_xlabel('X')
ax1.set_ylabel('Values')
ax1.grid(True)
plt.savefig('dataframe1_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 1: {end - start:.2f} seconds")
# Plot and save 2nd df using pandas plot
start = time.time()
ax2 = df2.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 2 Plot')
ax2.set_xlabel('X')
ax2.set_ylabel('Values')
ax2.grid(True)
plt.savefig('dataframe2_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 2: {end - start:.2f} seconds")
# Plot and save 3rd df using pandas plot
start = time.time()
ax3 = df3.plot(x='X', y=['Y', 'Z'], figsize=(8, 6), marker='o', title='DataFrame 3 Plot')
ax3.set_xlabel('X')
ax3.set_ylabel('Values')
ax3.grid(True)
plt.savefig('dataframe3_plot.png')
plt.close()
end = time.time()
print(f"Time for plot 3: {end - start:.2f} seconds")
Когда я смотрю на результаты time.time, я всегда получаю что-то похожее на это:
Time for plot 1: 134.06 seconds
Time for plot 2: 0.29 seconds
Time for plot 3: 0.23 seconds
Подробнее здесь: [url]https://stackoverflow.com/questions/79367432/pandas-plot-or-matplotlib-first-plot-very-slow[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия