Вздумалось мне тут положить один нарисованный в 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.