19 октября 2011

Базовые графические возможности R: настройка внешнего вида маркеров



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



Тип маркера

Как видно из приведенного выше рисунка, отдельные измерения по умолчанию изображаются в виде кружков. Изменить тип маркеров позволяет аргумент pch (plotting character - символ изображения). В стандартных случаях этот аргумент принимает численные значения от 1 до 25. Например, при pch = 2 маркеры превратятся из кружков в незакрашенные треугольники:

plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o", pch = 2)


Таблица 25-ти стандартных маркеров и их соответствующих численных кодов представлена ниже:


Набор стандартных маркеров может быть значительно расширен в случае, когда аргумент pch используется в комбинации с другим аргументом - font, задающим шрифт символов. Параметр pch может при этом принимать любое целое число от 1 до 128 и от 160 до 254. Например, при font = 5 становятся доступными следующие дополнительные маркеры:


Чтобы узнать необходимый численный код маркера, необходимо y-координату из приведенноого выше рисунка умножить на 10 и к получившемуся значению прибавить соответствующую x-координату. Например, маркеру в виде "сердечка" соответствует код 169 (= 16 х 10 + 9):

plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o",
       pch = 169, font = 5)


В качестве маркеров можно также использовать обычные печатные символы, например, буквы:

plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o",
       pch = "A")



Размер маркера

Размер маркеров задается при помощи аргумента cex (character extension - размер символа), который по умолчанию равен 1. Уменьшение или увеличение этого параметра приводит к соответствующим изменениям размеров маркеров:


При необходимости мы можем также изменить ширину линии обводки маркера. Для этого служит параметр lwd (line width - ширина линии). Ниже приведен пример для маркера с кодом 21 ("заполненный кружок"):


Цвет маркера

Цвет маркеров задается при помощи аргумента col (color - цвет). Имеются также отдельные параметры для настройки цвета других элементов графика (например, заголовка - col.main, названий осей - col.lab, меток осей - col.axes, и др.). Цвет может быть задан несколькими способами:
  • По названию цвета: например, col = "red" (красный), col = "green" (зеленый), или col = "black" (черный). Всего в R имеется 675 стандартных цветов. Их названия доступны по команде colors().
  • По численному коду: например col = 2 (красный), col = 3 (зеленый), или col = 1 (черный).
  • Путем непосредственного указания красного, зеленого и синего компонентов RGB спектра, например: "#RRGGBB" (подробнее см. здесь и здесь).
Ниже приведены несколько примеров, иллюстрирующих эффекты параметра col.

# маркеры в виде треугольников (pch = 2) синего цвета (col = "blue")
plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o",
       pch = 2, cex = 1.2, col = "blue")


# маркеры в виде ромбиков (pch = 5) красного цвета (col = 2)
plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o",
       pch = 5, cex = 1.2, col = 2)


# маркеры по умолчанию, заголовок графика синего цвета (col.main = "blue")
plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o", 
       col.main = "blue", cex = 1.2)


# то же, что выше,
# но названия осей выполнены красным цветом (col.lab = "red")
plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o", 
       col.main = "blue", col.lab = "red", cex = 1.2)


При работе с маркерами 21-25 (см. таблицу выше) мы можем использовать аргумент bg (background - фон) для указания цвета, которым они должны быть закрашены, например:

plot(indo.times, means, xlab = "Время", ylab = "Концентрация",
       main = "Скорость выведения индометацина", type = "o",
       pch = 21, cex = 1.2, bg = "red", col.main = "blue")



- -
Статья подготовлена по материалам главы 5 из книги Logan M (2010) Biostatistical design and analysis using R: a practical guide


2 комментария :

Анжей Брегорович комментирует...

Здравствуйте!
Ваш блог был добавлен в агрегатор русскоязычных статистических блогов http://statblogs.ru, последние записи с вашего фида можно посмотреть тут: http://statblogs.ru/author/r-analytics/

Сергей Мастицкий комментирует...

Спасибо, Анжей!

Отправить комментарий