Оптимизировать вывод SVG из Gnuplot - PullRequest
2 голосов
/ 27 сентября 2011

Я пытался построить набор данных, содержащий около 500 000 значений, используя gnuplot.Несмотря на то, что прорисовка прошла хорошо, созданный SVG-файл был слишком большим (около 25 МБ), и для его отрисовки требовалось много времени.Есть ли способ, как я могу улучшить размер файла?

Я смутно понимаю формат файла SVG, и я понимаю, что это потому, что SVG является векторным форматом и поэтому должен хранить 500 000 точек по отдельности.

Я также пытался Scour и перепечатка SVG безуспешно.

Ответы [ 3 ]

3 голосов
/ 27 сентября 2011

Время, необходимое для визуализации SVG-файла, пропорционально количеству информации в нем.Таким образом, единственный способ ускорить рендеринг - это уменьшить объем данных

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

Может быть каждые или какое-то другое сокращение данных может помочь, например, разбить данные на несколько графиков ...

1 голос
/ 27 сентября 2011

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

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

Я обычно конвертирую свой окончательный PDF в djvu формат.

pdf2djvu --dpi=600 -o my_file_600.djvu my_file.pdf

Это позволяет мне указать разрешение документа в целом (включая текст), а не разные разрешения, разбросанные по всему тексту.

С другой стороны, это означает наличие большого pdf для оригинального документа. Тем не менее, это может быть смягчено, если вы latex создаете свой оригинальный pdf - вы можете использовать опцию draft до тех пор, пока не закончите, чтобы изображения не импортировались при повседневном редактировании текста. (где рендеринг больших изображений будет раздражать).

0 голосов
/ 27 сентября 2011

Вы пробовали печатать в PDF, а затем конвертировать в SVG?

В Linux вы можете сделать это с помощью imagemagick, который вы даже сможете использовать для уменьшения размера исходного SVG-файла.

Или есть онлайн-конвертеры, такие как http://image.online -convert.com / convert-to-svg

...