В базе R функция plot
принимает аргумент col
, который определяет цвет точек. Рассмотрим следующее:
# generate some random data to plot
dataPoints = runif(50)
# plot all points as green points
plot(dataPoints, col = "green", pch = 20)
![Plot with green points](https://i.stack.imgur.com/59q14.jpg)
Теперь давайте создадим случайный биномиальный «тип» (0 или 1) для каждой точки:
# generate a random "type" for each point; either 0 or 1
dataType = sample(c(0,1), 50, replace = T)
Используя биномиальный тип, мы можем создать вектор цветов, а не просто указать один цвет:
# create a list of colors for each point, based on "type" of point (0 or 1).
# 0 = "red" and 1 = "blue".
colorVector = c("red", "blue")[dataType+1]
Проверьте содержимое ...
> dataType
[1] 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0
> colorVector
[1] "blue" "blue" "blue" "red" "red" "blue" "red" "red" "blue" "red" "red" "blue" "red" "red" "red" "red"
[17] "red" "red" "red" "blue" "blue" "red" "red" "red" "blue" "blue" "red" "blue" "blue" "blue" "red" "red"
[33] "red" "blue" "red" "red" "red" "red" "red" "red" "blue" "blue" "blue" "blue" "red" "red" "blue" "blue"
[49] "blue" "red"
Теперь, скажите plot
, чтобы использовать цветовой вектор для цветов - первая точка будет первым цветом в цветном векторе, вторая точка будет вторым цветом в цветном векторе, et c.
plot(dataPoints, col = colorVector, pch = 20)
![Plot with point colors determined by a vector of color names.](https://i.stack.imgur.com/MqvFn.jpg)
Наконец, если список цветов короче, чем список точек, цветовой вектор используется повторно ...
plot(1:30, col = c("red", "blue", "green"), pch = 20)
![Plot with recycled c(](https://i.stack.imgur.com/NWaCU.jpg)