首页 > 解决方案 > R - 如何绘制具有特定 y 轴(而不仅仅是频率)的直方图?

问题描述

我正在寻找一个直方图,它在 x 轴上绘制排名(1-400ish 值),在 y 轴上绘制每 1000 人的频率。有没有办法用 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)看起来像这样

任何人都可以提供任何帮助?

标签: rplothistogramstandard-deviation

解决方案


您没有提供任何数据进行测试,但我想您可以毫无问题地做到这一点。只需使用该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)

希望这可以帮助。


推荐阅读