【问题标题】:Calculate peak height of histogram in R计算R中直方图的峰高
【发布时间】:2017-09-06 17:18:02
【问题描述】:

我正在尝试从 R 中的直方图中提取一些指标。为此,我在 nifti 中有一张图像,并绘制了对应的直方图。之后我想提取平均值、中位数、峰高、峰值和峰宽。为此,我有以下代码:

img = readNIfTI("FA_skeleton_subj_0") #read nifti image
library(HistogramTools)
PlotRelativeFrequency(hist( x = img[ !img==0 ], xlim=c(0,0.8), breaks = seq(0,0.7,0.001)), xlab = "FA", main = "Histogram de FA") #plot relative frequency so I can compare between subjects
mean (img[ !img==0 ]) #!img==0 means that I don't want to count with zero voxels because they are background
median(img[ !img==0])
abline(v=median(img[ !img==0]),col="green")
abline(v=mean(img[ !img==0]),col="blue")

我希望对计算峰值指标(高度、宽度和值)有所帮助。谢谢!

【问题讨论】:

  • 你能提供一个可重现的例子吗? img 是什么,只是一个矩阵?唯一无法从原始数据中直接找到的是峰宽。
  • img 是 nifti 格式的 MRI 图像
  • 我会分享一个具体的例子,但是评论区不接受分享链接
  • 请参阅stackoverflow.com/questions/5963269/…,了解如何轻松制作可以分享的示例。

标签: r histogram nifti


【解决方案1】:

这是一个关于随机高斯样本的示例:

x <- rnorm(1000)
h <- hist(x, n=20)
i <- which.max(h$density)
res <- c("Peak value" = mean(h$breaks[i:(i+1)]), 
         "Peak height" = h$density[i], 
         "Peak width" = diff(h$breaks[i:(i+1)]))

此外,您可能想要计算样本的众数,这可以通过modeest 包的功能之一来完成:

library(modeest)
m <- asselin(x)

【讨论】:

  • 感谢您的回复!密度和相对频率一样吗?
  • 差不多:详情见?hist
  • 我相信我的情况并非如此。但我已经设法获得峰值高度和价值。峰宽效果不太好
猜你喜欢
  • 2012-10-19
  • 1970-01-01
  • 2023-03-30
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2015-11-01
相关资源
最近更新 更多