Скрипт на R для работы - часть III

# расчёты, нужные для построения графиков вида "частотное распределение"
# использую базовые возможности R

# беру уже загруженные при работе над первой частью данные и строю по ним гистограмму
hist(pp_0$pp_0)

# в ней можно задать нужное число классов,
# для чего сначала определяю, сколько уникальных чисел в исходных данных
un_n <- unique(pp_0$pp_0) # получаю вектор, содержащий уникальные числа
br <- length(un_n) # определяю его длину

# строю новый вариант гистограммы
hist(pp_0$pp_0, br)

# как и при построении полигона распределения, здесь можно внести дополнения
# раскрашиваю столбики
hist(pp_0$pp_0, br,
     col = "lightblue",
     border = "blue")

# или штрихую столбики
hist(pp_0$pp_0, br,
     col = "lightblue",
     border = "blue",
     density = 10, # density задаёт плотность линий
     angle = 45) # angle задаёт наклон линий

# добавляю подписи (к раскрашенной гистограмме)
hist(pp_0$pp_0, br,
     col = "lightblue",
     border = "blue",
     main = "График частотного распределения", # это заголовок
     xlab = "Обилие вида",
     ylab = "Число видов с n-м обилием")

# добавляю подписи обилий на столбцах
hist(pp_0$pp_0, br,
     col = "lightblue",
     border = "blue",
     main = "График частотного распределения",
     xlab = "Обилие вида",
     ylab = "Число видов с n-м обилием",
     labels = TRUE)

# уточняю пределы графика по оси Y (убираю ещё частоты)
hist(pp_0$pp_0, br,
     col = "lightblue",
     border = "blue",
     main = "График частотного распределения",
     xlab = "Обилие вида",
     ylab = "Число видов с n-м обилием",
     ylim = c(0, 10))


# другой (более удобный) вариант построения через столбчатую диаграмму
barplot(table(pp_0$pp_0),
        col = "lightblue",
        border = "blue",
        main = "График частотного распределения",
        xlab = "Обилие вида",
        ylab = "Число видов с n-м обилием",
        ylim = c(0, 10)) # обратите внимание, здесь  корректные подписи столбиков

# в этом варианте можно изменить положение гистограммы в пространстве
barplot(table(pp_0$pp_0),
        horiz = TRUE,
        col = "lightblue",
        border = "blue",
        main = "График частотного распределения",
        xlab = "Обилие вида",
        ylab = "Число видов с n-м обилием",
        ylim = c(0, 10))

# неудобно при этом, что подписи под строками идут вертикально, меняю
barplot(table(pp_0$pp_0),
        horiz = TRUE,
        las = 1, # значения: 0 - параллельно осям, 1 - горизонтально, 2 - перпендикулярно осям, 3 - вертикально
        col = "lightblue",
        border = "blue",
        main = "График частотного распределения",
        xlab = "Обилие вида",
        ylab = "Число видов с n-м обилием",
        ylim = c(0, 10))

# иногда требуется задать конкретные границы классов
# например, задаю классы с шагом 5
max(pp_0$pp_0) # узнаю максимальное обилие на первой площадке
br_1 <- c(0, 5, 10, 15, 20) # получились такие границы

# теперь построю интервальный вариационный ряд, указав эти границы
barplot(table(cut(pp_0$pp_0, br_1)),
        col = "lightblue",
        border = "blue",
        main = "График частотного распределения",
        xlab = "Обилие вида",
        ylab = "Число видов с n-м обилием",
        ylim = c(0, 10))
# видно, что левая граница класса не берётся, а правая входит; если надо иначе, то добавляем right = FALSE

# осталось сделать адекватные подписи
barplot(table(cut(pp_0$pp_0, br_1)),
        names.arg = c(1, 2, 3, 4), # нумерую мои баллы обилия
        col = "lightblue",
        border = "blue",
        main = "График частотного распределения",
        xlab = "Балл обилия",
        ylab = "Число видов с n-м балом обилием",
        ylim = c(0, 12))
Последнее изменение: Понедельник, 1 ноября 2021, 12:16