R - Как построить гистограмму с определенной осью Y (а не только с частотой)?

Я хочу создать гистограмму, которая отображает рейтинг (значения от 1 до 400) по оси x и частоту на 1000 человек по оси y. Есть ли способ сделать это с помощью функции hist ()? В настоящее время я использую plot.default () вот так:

plot.default(frequencyData$Deprivation.rank, frequencyData$Prescription.per.1000.people, xlab = 
"Deprivation Rank", ylab = "per 1000", main=graph_title, xlim=NULL, ylim=NULL, type="h")

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

Кто-нибудь может помочь?


person rwzfs    schedule 24.01.2020    source источник


Ответы (1)


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

Вот документация, которую вы можете получить, набрав ?hist в консоли R:

Гистограммы Описание

Общая функция hist вычисляет гистограмму заданных значений данных. Если plot = TRUE, результирующий объект класса «гистограмма» строится plot.histogram, прежде чем он будет возвращен.

Usage hist(x, ...)

Метод S3 по умолчанию:

hist(x, breaks = "Sturges",
   freq = NULL, probability = !freq,
   include.lowest = TRUE, right = TRUE,
   density = NULL, angle = 45, col = NULL, border = NULL,
   main = paste("Histogram of" , xname),
   xlim = range(breaks), ylim = NULL,
   xlab = xname, ylab,
   axes = TRUE, plot = TRUE, labels = FALSE,
   nclass = NULL, warn.unused = TRUE, ...)

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

hist(
  frequencyData$Deprivation.rank,
  frequencyData$Prescription.per.1000.people,
  xlab = "Deprivation Rank",
  ylab = "per 1000",
  main = graph_title,
  xlim = NULL,
  ylim = NULL
)

альтернатива ggplot

Вы можете получить более красивый график, используя библиотеку ggplot, как в этом примере:

library(ggplot2)
ggplot(frequencyData, aes(Deprivation.rank, Prescription.per.1000.people)) +
  geom_histogram() +
  xlab("Deprivation Rank") +
  ylab("per 1000") +
  ggtitle(graph_title)

Надеюсь это поможет.

person Louis    schedule 24.01.2020
comment
Поэтому, когда я рисую это, ось Y не выглядит так, как на графике выше. Вместо этого это выглядит так, что, насколько я могу судить, это просто частота, с которой встречается каждый ранг депривации в данных? - person rwzfs; 24.01.2020
comment
Без данных сказать сложно. Попробуйте удалить параметр type = "h" или, что еще лучше, попробуйте использовать альтернативу ggplot, как в отредактированном ответе. - person Louis; 24.01.2020