
До сих пор я использовал TikZ/PFGplots для построения небольших фрагментов (симулированных) сигналов, рисования схем и т. д., но когда дело доходит до фактически измеренных сигналов (например, на частоте 10 кГц), вы легко получаете миллионы точек. Очень быстро вы сталкиваетесь сПревышена емкость TeX, извините [размер основной памяти=54000000]-error. Хотя очевидным решением является либо превышение памяти (что не рекомендуется), либо использование externalize
(полезно только при рендеринге нескольких изображений), оба варианта не являются практичными решениями для необработанных данных.
Хотя он работает довольно хорошо с 100 000 (1e5) строками (каждая из которых содержит значение x и y), но ломается, если вы делаете это намного больше. Однако, предполагая 10 кГц, это переводится в сигнал максимум 10 с...
В: Существует ли эффективный способ построения графиков больших сигналов в TeX?
MWE: (предполагается, что данные находятся в файле data.csv
с двумя столбцами x
и y
)
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [mark=none,x=x, y=y, col sep=comma] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document}
Для файла data.csv
. Возьми этофайл здесьили используйте фрагмент кода MATLAB, чтобы воспроизвести файл самостоятельно:
x = (1:1e6).';
y = awgn( ((x-1/3*length(x))/length(x)*10).^2,20,'measured');
writetable(table(x,y),'data.csv');
Мне было интересно, есть ли скрипт для понижения разрешения данных, но автоматического сохранения наиболее значимых точек. В частности, я хочу сделать это spy
для данных, им нужно исходное разрешение в этой области...