Сюжет Pandas или первый сюжет matplotlib очень медленныйPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сюжет Pandas или первый сюжет matplotlib очень медленный

Сообщение 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


Подробнее здесь: https://stackoverflow.com/questions/793 ... -very-slow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сюжет Pandas или первый сюжет matplotlib очень медленный
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Первый вызов веб-службы ASMX очень медленный
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Очень неожиданная производительность fprintf против std::ofstream (fprintf очень медленный)
    Anonymous » » в форуме C++
    0 Ответы
    84 Просмотры
    Последнее сообщение Anonymous
  • Симулятор XCode очень медленный.
    Гость » » в форуме IOS
    0 Ответы
    76 Просмотры
    Последнее сообщение Гость
  • Jpa @CollectionTable очень медленный запрос
    Anonymous » » в форуме JAVA
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»