Диаграмма рассеяния высокого разрешения в GNUPlot? - PullRequest
0 голосов
/ 14 октября 2018

Обычно я беру маршрут tikz-pgfplot через интерфейс gnuplot-lua, чтобы рисовать научные данные для исследовательских работ.Обычно это работает очень хорошо, и я могу легко интегрировать свои цифры в latex документы.Полученные таким образом цифры имеют очень высокое разрешение и изысканность.Однако камнем преткновения является график рассеяния большого разрешения большого набора данных с высокой разрешающей способностью - для настройки 100,000 точек.

Если я следую своему обычному маршруту tikz-pgfplot, файл latex создается, но при компиляциидо pdflatex получается ошибка tex memory exceeded....Я также узнал, что увеличение памяти tex не очень хорошая идея.Итак, я закончил тем, что создал рисунок eps (инкапсулированный постскриптум), который я затем включил в свой документ latex через tikz-pgfplot для визуализации аннотаций.Обычно это работает, но в результате получается очень большой файл PDF с мелодией 2 MB, а считыватель PDF занимает много времени, чтобы полностью отобразить цифру.

Мне было интересно, есть ли какие-нибудьдругие способы получения диаграммы рассеяния высокого разрешения большого набора данных?Любой указатель будет высоко оценен.

Мадхур

1 Ответ

0 голосов
/ 15 октября 2018

Любое представление векторного формата из 10 ^ 5 точек обязательно будет большим, потому что каждая точка описывается отдельно, даже если она лежит поверх или под многими другими точками.Общее решение заключается в использовании растрового формата для графика, поскольку каждый пиксель в графике либо установлен, либо не задан, независимо от того, сколько точек лежит поверх него.Размер выходного представления в первом приближении не зависит от количества точек.

Придерживаясь gnuplot, я бы, вероятно, использовал set terminal cairolatex png standalone для генерации начального описания графика, а затем pdflatex для получения окончательного PDFс растровым изображением, встроенным в него.Например:

# create a bitmapped version
set term cairolatex png standalone size 10cm, 7cm
set output 'cairolatex+png.tex'
set xrange [0:1]
set sample 100000
plot '+' using (rand(0)):(rand(0)) with dots
unset output
system("pdflatex cairolatex+png")

# create a vector version
set term tikz standalone size 10cm, 7cm
set output 'tikz.tex'
set sample 10000
replot
unset output
system("pdflatex tikz")

Первый график завершается немедленно и создает файл меньшего размера.Второй график занимает несколько минут и создает файл большего размера, несмотря на то, что он содержит только 1/10 количества точек.

[236] ls -s1 *.pdf
416 cairolatex+png.pdf
844 tikz.pdf

Оба используют латекс для текстовых частей графика, хотя шрифты по умолчанию могут не соответствоватьто же самое.

...