Диаграмма рассеяния высокого разрешения в GNUPlot?

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

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

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

Мадхур

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
696
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Любое представление в векторном формате из 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

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

Благодарю за ответ. Однако по какой-то причине у меня нет опции png для терминала gnuplotcairolatex. Итак, я использовал терминал cairopng, который дал ту же графику, и теперь мой окончательный размер рисунка pdf составляет около 18 KB вместо более раннего 1.8 MB! Спасибо!

Madhurjya 20.10.2018 07:44

Другие вопросы по теме