Скрипт на R для работы - часть I
# расчёты, нужные для построения графиков вида "ранг вида / обилие вида"
# используем базовые возможности R
# ввожу исходные данные по обилию видов на площадке
# первый способ - указание их "вручную"
pp_0 <- c(0.5, 15, 0.5, 2, 12, 1, 7, 4, 1, 20, 0.5, 1, 0.5, 7, 0.5)
# при этом формируется вектор
# перевожу его в датафрейм
pp_0 <- as.data.frame(pp_0)
# второй способ - чтение из файла на диске или в сети
pp_1 <- read.csv(file = (description = "i:/pp_1.csv"), # путь к файлу и его имя
sep = ";", # указание на разделитель - точку с запятой
header = FALSE, # указание на отсутствие заголовка (иначе - TRUE)
dec = ",") # указание на то, что разделитель в числах запятая
# в этом случае сразу формируется датафрейм
# проверяю, что скачалось (не обязательное действие)
View(pp_0)
View(pp_1)
# добавляю столбик с нумерацией строк с названием "id"
pp_0$id <- 1:nrow(pp_0)
pp_1$id <- 1:nrow(pp_1)
# строю график
plot(pp_0$id, # указываю x
pp_0$pp_0, # указываю y
type = "l", # указываю тип графика (p, b, c, o, h, s, S, n)
ylim = c(0, 50)) # указываю пределы по оси Y
lines(pp_1$id,
pp_1$V1, # во втором датафрейме название столбика с данными отличается
type = "l") # добавляю линию второй площадки
# графики явно некрасивые, надо изменить
# сортирую данные в столбике по убыванию;
# если надо отсортировать по возрастанию, параметр "decreasing" опускаем
pp_0$sd <- sort(pp_0$pp_0, decreasing = T)
pp_1$sd <- sort(pp_1$V1, decreasing = T)
# в обоих случаях отсортированные данные сохраняю в столбик "sd"
# снова строю графики и подписываю оси
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида")
lines(pp_1$id,
pp_1$sd,
type = "l")
title("График распределения видов для двух площадок в осях ранг вида / обилие вида") # добавляю заголовок
# заголовок выглядит некрасиво, кроме того, по графикам не понять, где какая площадка
# исправляю заголовок
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида")
lines(pp_1$id,
pp_1$sd,
type = "l")
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# выделить отдельные линии можно двумя способами
# способ первый - через цвет линии
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
col = "red")
lines(pp_1$id,
pp_1$sd,
type = "l",
col = "green")
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# способ второй - через тип линии
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
lty = 1) # варьирует от 0 до 6
lines(pp_1$id,
pp_1$sd,
type = "l",
lty = 2)
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# использую оба способа, а также добавляю легенду
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
col = "red",
lty = 1)
lines(pp_1$id,
pp_1$sd,
type = "l",
col = "green",
lty = 2)
legend("topright",
legend = c("Первая площадка", "Вторая площадка"),
lty = c(1, 2),
col = c("red", "green"))
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# для одного из графиков надо прологарифмировать данные в столбце
pp_0$lid <- log(pp_0$id, 2) # логарифмирую данные в столбце id по основанию "2" и сохраняю в столбце "lid";
# для расчёта натурального логарифма, часть с основанием можно опустить
# ещё один график является кумулятой и требует расчёт накопленного обилия
pp_0$csd <- cumsum(pp_0$sd) # считаю накопленные обилия и сохраняю в столбец "csd"
# используем базовые возможности R
# ввожу исходные данные по обилию видов на площадке
# первый способ - указание их "вручную"
pp_0 <- c(0.5, 15, 0.5, 2, 12, 1, 7, 4, 1, 20, 0.5, 1, 0.5, 7, 0.5)
# при этом формируется вектор
# перевожу его в датафрейм
pp_0 <- as.data.frame(pp_0)
# второй способ - чтение из файла на диске или в сети
pp_1 <- read.csv(file = (description = "i:/pp_1.csv"), # путь к файлу и его имя
sep = ";", # указание на разделитель - точку с запятой
header = FALSE, # указание на отсутствие заголовка (иначе - TRUE)
dec = ",") # указание на то, что разделитель в числах запятая
# в этом случае сразу формируется датафрейм
# проверяю, что скачалось (не обязательное действие)
View(pp_0)
View(pp_1)
# добавляю столбик с нумерацией строк с названием "id"
pp_0$id <- 1:nrow(pp_0)
pp_1$id <- 1:nrow(pp_1)
# строю график
plot(pp_0$id, # указываю x
pp_0$pp_0, # указываю y
type = "l", # указываю тип графика (p, b, c, o, h, s, S, n)
ylim = c(0, 50)) # указываю пределы по оси Y
lines(pp_1$id,
pp_1$V1, # во втором датафрейме название столбика с данными отличается
type = "l") # добавляю линию второй площадки
# графики явно некрасивые, надо изменить
# сортирую данные в столбике по убыванию;
# если надо отсортировать по возрастанию, параметр "decreasing" опускаем
pp_0$sd <- sort(pp_0$pp_0, decreasing = T)
pp_1$sd <- sort(pp_1$V1, decreasing = T)
# в обоих случаях отсортированные данные сохраняю в столбик "sd"
# снова строю графики и подписываю оси
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида")
lines(pp_1$id,
pp_1$sd,
type = "l")
title("График распределения видов для двух площадок в осях ранг вида / обилие вида") # добавляю заголовок
# заголовок выглядит некрасиво, кроме того, по графикам не понять, где какая площадка
# исправляю заголовок
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида")
lines(pp_1$id,
pp_1$sd,
type = "l")
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# выделить отдельные линии можно двумя способами
# способ первый - через цвет линии
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
col = "red")
lines(pp_1$id,
pp_1$sd,
type = "l",
col = "green")
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# способ второй - через тип линии
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
lty = 1) # варьирует от 0 до 6
lines(pp_1$id,
pp_1$sd,
type = "l",
lty = 2)
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# использую оба способа, а также добавляю легенду
plot(pp_0$id,
pp_0$sd,
type = "l",
ylim = c(0, 50),
xlab = "Ранг вида",
ylab = "Обилие вида",
col = "red",
lty = 1)
lines(pp_1$id,
pp_1$sd,
type = "l",
col = "green",
lty = 2)
legend("topright",
legend = c("Первая площадка", "Вторая площадка"),
lty = c(1, 2),
col = c("red", "green"))
title("График распределения видов для двух площадок
в осях ранг вида / обилие вида")
# для одного из графиков надо прологарифмировать данные в столбце
pp_0$lid <- log(pp_0$id, 2) # логарифмирую данные в столбце id по основанию "2" и сохраняю в столбце "lid";
# для расчёта натурального логарифма, часть с основанием можно опустить
# ещё один график является кумулятой и требует расчёт накопленного обилия
pp_0$csd <- cumsum(pp_0$sd) # считаю накопленные обилия и сохраняю в столбец "csd"
Последнее изменение: Понедельник, 1 ноября 2021, 12:15