ПRодиRаясь сквозь гRафику...

Jan 30, 2015 23:30


Вздумалось мне тут положить один нарисованный в R график на другой. Нет, я потом, конечно, сделал все через par(new=T), как подобает настоящему самураю, но поначалу мне показалось, что совместить два готовых PNG изображения в GIMP будет быстрее. Не тут-то было. Сделав это, я тут же обнаружил, что меньший по размеру график нарисован на светло-сером фоне, который хорошо заметен на белом фоне большего по размерам графика. Первая мысль была, конечно, о том, что надо принудительно указать белый цвет фона через par(..., bg="white"). Безрезультатно. Фон остался серым. Вторая -- о том, что можно сделать фон не белым, а прозрачным при помощи par(..., bg="transparent") (паника: за несколько лет успел забыть, как сделать прозрачность в GIMP). Никакого толку. Фон, возможно, стал прозрачным, но вместе с ним прозрачными стали и черные линии, причем они стали бледно серыми до почти полной невидимости. Зашел в тупик, отправился гуглить.

По результатам гугления поставил imagemagick (почему-то его по умолчанию не стояло), после чего все оказалось элементарно. Написал в командной строке:

convert filename.png -transparent white filename.png

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

Подсказку про imagemagick нашел тут: http://stackoverflow.com/questions/25354479/opaque-legend-in-an-r-plot-with-transparent-background

Но через par(new=T), разумеется, проще...

This entry was originally posted at http://kouprianov.dreamwidth.org/303904.html Comment wherever you wish.

r, gimp, imagemagick, gnu linux

Previous post Next post
Up