Понедельник, 06.04.2026, 02:53Приветствуем вас Гость | RSS
Решение задач в среде R
Главная | R цвет графика | Регистрация | Вход
» Меню сайта

» R практикум

» R кодинг

» Rmatem

» Опрос
Сколько вам лет?
Всего ответов: 9

» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

R цвет графика

В разделе о pch символах мы объяснили, как задать col аргумент, который позволяет изменять цвет символов построения. В R существует большое разнообразие цветовых палитр. С помощью этой colors функции вы можете вернуть все доступные базовые цвета R. Кроме того, вы можете использовать grep функцию (функцию регулярного выражения) для возврата вектора цветов, содержащего некоторую строку.

# Return all colors
colors()

# Return all colors that contain the word 'green'
cl <- colors()
cl[grep("green", cl)]

# Plot with blue dots
plot(x, y, col = "blue")
plot(x, y, col = 4) # Equivalent
plot(x, y, col = "#0000FF") # Equivalent

Вы можете указать цвета с его именем ("red""green", …), с цифрами (от 1 до 8) или даже с его шестнадцатеричной ссылкой ("#FF0000""#0000FF", …).

Вы также можете изменять цвета текста с col.main помощью функций , col.subcol.lab и col.axis и даже изменять цвет поля с fg помощью аргумента.

plot(x, y, main = "Title", sub = "Subtitle",
 pch = 16,
 col = "red", # Symbol color
 col.main = "green", # Title color
 col.sub = "blue", # Subtitle color
 col.lab = "sienna2", # X and Y-axis labels color
 col.axis = "maroon4", # Tick labels color
 fg = "orange") # Box color

Нанесение цветных точек по группам

Если у вас есть числовые переменные, помеченные группой, вы можете нанести точки данных, разделенные цветом, передав категориальную переменную (как фактор) в col аргумент. Цвета будут зависеть от факторов.

# Create dataframe with groups
group <- ifelse(x < 0 , "car", ifelse(x > 1, "plane", "boat"))
df <- data.frame(x = x, y = y, group = factor(group))

# Color by group
plot(df$x, df$y, col = df$group, pch = 16)

# Change group colors
colors <- c("red", "green", "blue")
plot(df$x, df$y, col = colors[df$group], pch = 16)

# Change color order, changing levels order
plot(df$x, df$y, col = colors[factor(group, levels = c("car", "boat", "plane"))],
 pch = 16)

Обратите внимание, что по умолчанию уровни факторов упорядочены в алфавитном порядке, поэтому в этом случае порядок вектора цветов не является порядком цветов на графике, поскольку первая строка фрейма данных соответствует “car”, то есть второму уровню. Следовательно, если вы измените порядок уровней, вы можете изменить порядок цветов.Начиная с R 4.0.0stringAsFactors, аргумент data.frame функции – FALSE по умолчанию, поэтому вам нужно будет преобразовать категориальную переменную в фактор, чтобы раскрасить наблюдения по группам, как в предыдущем примере.

Цвет фона

Существует два способа изменить цвет фона R диаграмм: изменить весь цвет или изменить цвет фона рамки. Чтобы изменить полный цвет фона, вы можете использовать следующую команду:

# Light gray background color
par(bg = "#f7f7f7")

# Add the plot
plot(x, y, col = "blue", pch = 16)

# Back to the original color
par(bg = "white")

Однако результат будет более красивым, если только поле будет окрашено в определенный цвет, хотя для этого требуется больше кода. Обратите внимание, что plot.new функция позволяет создавать пустой график в R, и это par (new = TRUE)позволяет добавлять один график поверх другого.

# Create an empty plot
plot.new()

rect(par("usr")[1], par("usr")[3],
 par("usr")[2], par("usr")[4],
 col = "#f7f7f7") # Color

par(new = TRUE)

plot(x, y, col = "blue", pch = 16)

R построение линии

Вы можете добавить линию к графику в R с lines помощью функции. Предположим, например, что вы хотите добавить красную линию к графику от (-4, -4) до (4, 4), чтобы вы могли написать:

plot(x, y)
lines(-4:4, -4:4, lwd = 3, col = "red")

R ширина линии построения

Ширина линии в R может быть изменена с lwdпомощью аргумента, где большие значения будут отображать более широкую линию.

M <- matrix(1:36, ncol = 6)

matplot(M, type = c("l"), lty = 1, col = "black", lwd = 1:6)

# Just to indicate the line widths in the plot
j <- 0
invisible(sapply(seq(4, 40, by = 6),
 function(i) {
 j <<- j + 1
 text(2, i, paste("lwd =", j))}))

Тип линии построения

При построении графика типа “l”, “o”, “b”, “s” или при добавлении новой линии поверх графика можно выбирать между различными типами линий, задав lty аргумент от 0 до 6.

matplot(M, type = c("l"), lty = 1:6, col = "black", lwd = 3)

# Just to indicate the line types in the plot
j <- 0
invisible(sapply(seq(4, 40, by = 6),
 function(i) {
 j <<- j + 1
 text(2, i, paste("lty =", j))}))

Тип Описание
0 Пусто
1 Сплошная линия (по умолчанию)
2 Пунктирная линия
3 Пунктирная линия
4 Пунктирная линия
5 Линия с длинной чертой
6 Линия с двумя штрихами

Добавление текста для построения графика в R

С одной стороны, mtext функция в R позволяет добавлять текст на все стороны поля построения. Существует 12 комбинаций (по 3 с каждой стороны прямоугольника, при выравнивании по левому краю, центру и правому краю). Вам просто нужно изменить side и adj, чтобы получить нужную вам комбинацию.

On the other, the text function allows you to add text or formulas inside the plot at some position setting the coordinates. In the following code block some examples are shown for both functions.

plot(x, y, main = "Main title", cex = 2, col = "blue")

#---------------
# mtext function
#---------------

# Bottom-center
mtext("Bottom text", side = 1)

# Left-center
mtext("Left text", side = 2)

# Top-center
mtext("Top text", side = 3)

# Right-center
mtext("Right text", side = 4)


# Bottom-left
mtext("Bottom-left text", side = 1, adj = 0)

# Top-right
mtext("Top-right text", side = 3, adj = 1)


# Top with separation
mtext("Top higher text", side = 3, line = 2.5)

#--------------
# Text function
#--------------

# Add text at coordinates (-2, 2)
text(-2, 2, "More text")

# Add formula at coordinates (3, -3)
text(3, -3, expression(frac(alpha[1], 4)))

Обозначьте точки в R

В этом разделе вы узнаете, как помечать точки данных в R. Для этой цели вы можете использовать textфункцию, указав координаты и метки точек данных в labelsаргументе. С posпомощью аргумента вы можете задать положение метки относительно точки: 1 снизу, 2 слева, 3 сверху и 4 справа.

attach(USJudgeRatings)

# Create the plot
plot(FAMI, INTG,
 main = "Familiarity with law vs Judicial integrity",
 xlab = "Familiarity", ylab = "Integrity",
 pch = 18, col = "blue")

# Plot the labels
text(FAMI, INTG,
 labels = row.names(USJudgeRatings),
 cex = 0.6, pos = 4, col = "red")

detach(USJudgeRatings)

Вы также можете пометить отдельные точки данных, если проиндексируете элементы textфункции следующим образом:

attach(USJudgeRatings)

plot(FAMI, INTG,
 main = "Familiarity with law vs Judicial integrity",
 xlab = "Familiarity", ylab = "Integrity",
 pch = 18, col = "blue")

# Select the index of the elements to be labelled
selected <- c(10, 15, 20)

# Index the elements with the vector
text(FAMI[selected], INTG[selected],
 labels = row.names(USJudgeRatings)[selected],
 cex = 0.6, pos = 4, col = "red")

detach(USJudgeRatings)

Измените тип поля с помощью аргумента bty

btyАргумент позволяет изменять тип блока R-графов. Существует несколько вариантов, сведенных в следующую таблицу:

Тип блока Описание
“o” Весь блок (по умолчанию)
“7” Сверху и справа
“Л” Слева и снизу
“U” Слева, внизу и справа
“C” Сверху, слева и снизу
“н” Нет поля

Форма символов “7”, “L” и “U” представляет границы прямоугольника, который они рисуют.

par(mfrow = c(2, 3))

plot(x, y, bty = "o", main = "Default")
plot(x, y, bty = "7", main = "bty = '7'")
plot(x, y, bty = "L", main = "bty = 'L'")
plot(x, y, bty = "U", main = "bty = 'U'")
plot(x, y, bty = "C", main = "bty = 'C'")
plot(x, y, bty = "n", main = "bty = 'n'")

par(mfrow = c(1, 1))

R легенда сюжета

Наконец, мы рассмотрим, как добавить легенду к графику R с legendпомощью функции. Вы можете задать координаты , в которые вы хотите добавить легенду , или указать "top""bottom""topleft""topright""bottomleft"или "bottomright". Вы также можете указать множество аргументов, как в plot функции. В качестве примера, вы можете изменить bty в легенде R, цвет фона с bg аргументом, среди прочего.

plot(x, y, pch = 19)
lines(-4:4, -4:4, lwd = 3, col = "red")
lines(-4:1, 0:5, lwd = 3, col = "green")

# Adding a legend
legend("bottomright", legend = c("red", "green"),
 lwd = 3, col = c("red", "green"))

» Вход на сайт

» Поиск

» Работа с файлами

» Вся графика

» Гистогра́мма

» Теория вероятности

» Сравнение групп

» Дисперс анализ

» Блог

» Календарь
«  Апрель 2026  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930

» Архив записей


Copyright MyCorp © 2026
uCoz