Cairo — делаем графики гладкими

R R-plots R-packages

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

x <- seq(0, 10, by = 0.1)
y <- sin(x)
plot(x, y, type="l")

Если вы хорошо вглядитесь в это изображение, то увидите, что функция получилась не совсем гладкой. Дело в том, что стандартное графическое устройство не поддерживает anti-aliasing. Но не стоит грустить! Нам поможет Cairo! Cairo — это программная библиотека, предназначенная для рендеринга векторной графики с не зависящим от оборудования API. А для языка R есть одноимённый пакет. Вы можете почитать документацию к этому пакету, но пока что мы посмотрим работу на примере. Для начала установим пакет и подключим его:

install.packages("Cairo")
library("Cairo")

Допустим, я работаю под операционной системой Windows и хочу просто посмотреть на гладкий график функции. Нет ничего проще:

CairoWin()
plot(x, y, type="l")

А теперь давайте ещё раз нарисуем наш график, но результат получим в виде png-файла:

CairoPNG("sin.png")
plot(x, y, type="l")
dev.off() # Завершаем формирование файла

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