Sto provando a stampare un grafico a 600 dpi utilizzando il Matplotlib Python. Tuttavia Python tracciata 2 su 8 grafici e uscita l'errore:Matplotlib Agg Rendering errore di complessità
OverflowError: Agg rendering complexity exceeded. Consider downsampling or decimating your data.
sto tramando un pezzo enorme di dati (7.500.000 i dati per colonna) quindi credo o che sarebbe stato qualche problema di sovraccarico o che ho bisogno di imposta un grande cell_block_limit.
Ho provato a cercare le soluzioni per modificare un cell_block_limit su Google, ma senza risultati. Quale sarebbe un buon approccio?
il codice come segue: -
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
majorLocator = MultipleLocator(200)
majorFormatter = FormatStrFormatter('%d')
minorLocator = MultipleLocator(20)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.xaxis.set_major_locator(majorLocator)
ax.xaxis.set_major_formatter(majorFormatter)
ax.xaxis.set_minor_locator(minorLocator)
ax.xaxis.set_ticks_position('bottom')
ax.xaxis.grid(True,which='minor')
ax.yaxis.grid(True)
plt.plot(timemat,fildata)
plt.xlabel(plotxlabel,fontsize=14)
plt.ylabel(plotylabel,fontsize=14)
plt.title(plottitle,fontsize=16)
fig.savefig(plotsavetitle,dpi=600)
e 'un sacco di dati, si considera un 1600x1200 avrebbe 'solo' 1.920.000 _pixels_ in là. che tipo di trama stai cercando di fare? Se si tratta di un istogramma, è possibile suddividerli, una linea potrebbe essere sottocampionata .. – wim
sono i dati dall'accelerometro campionato a 1500 Hz per catturare lo shock ad alta frequenza. Sto cercando di fare la semplice trama Voltage (V) vs Time. Quindi, prima di tutto, generi una quantità simile di dati per un array temporale e tracciamo il segnale nel tempo. Sì, è enorme, ma in futuro sono sicuro che diventerà ancora enorme dal momento che stiamo facendo un esperimento da 2 ore a 4 ore. Per favore, dimmi come sottocampionare una linea ... grazie mille! –
usa una sezione sugli ingressi (su entrambi gli assi). per esempio, per selezionare ogni 10 elemento di un array 'x' si usa' x [:: 10] ' – wim