【问题标题】:2 Y axis histogram (normal frequency vs relative frequency)2 Y 轴直方图(正常频率与相对频率)
【发布时间】:2017-02-28 07:41:41
【问题描述】:

我需要你的帮助。

我有这两个地块,分别。一个是正​​常频率,另一个是具有完全相同数据的相对频率。

你能告诉我如何将它们加入一个带有 2 个 y 轴(频率和相对频率)的图中吗?

x<- AAA$starch 
h<-hist(x, breaks=40, col="lightblue", xlab="Starch ~ Corn", 
    main="Histogram with Normal Curve", xlim=c(58,70),ylim = c(0,2500),axes=TRUE)
xfit<-seq(min(x),max(x),length=40) 
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) 
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit, yfit, col="blue", lwd=3)

library(HistogramTools)
x<- AAA$starch 
c <- hist(x,breaks=10, ylab="Relative Frequency", main="Histogram with Normal Curve",ylim=c(0,2500), xlim=c(58,70), axes=TRUE)
PlotRelativeFrequency((c))

谢谢!!

编辑:

这只是我想要的示例图像......

【问题讨论】:

  • 这个相对频率是否只是相同的数据,除以总n?你确定你需要一个单独的情节吗?也许只是添加第二个 y 轴?
  • @joud。是的,我想要一个在不同 y 轴上包含两个信息的单个图。

标签: r histogram


【解决方案1】:

我使用 latticeExtra 包中的 doubleYScale。

这是一个例子(我不确定相对频率计算):

library(latticeExtra)

set.seed(42)
firstSet <- rnorm(500,4)

breaks = 0:10

#Cut data into sections
firstSet.cut = cut(firstSet, breaks, right=FALSE)
firstSet.freq = table(firstSet.cut) 

#Calculate relative frequency
firstSet.relfreq = firstSet.freq / length(firstSet) 

#Parse to a list to use xyplot later and assigning x values
firstSet.list <- list(x = 1:10, y = as.vector(firstSet.relfreq))

#Build histogram and relative frequency curve
hist1 <- histogram(firstSet, breaks = 10, freq = TRUE, col='skyblue', xlab="Starch ~ Corn", ylab="Frequency", main="Histogram with Normal Curve", ylim=c(0,40), xlim=c(0,10), plot=FALSE)
relFreqCurve <- xyplot(y ~ x, firstSet.list, type="l", ylab = "Relative frequency", ylim=c(0,1))

#Build double objects plot
doubleYScale(hist1, relFreqCurve, add.ylab2 = TRUE)

这是两个不同比例的 y 轴的结果:

【讨论】:

  • 但我不想要两个条形图。只想添加有关相对频率的信息。如果我使用相同数量的中断,则情节将完全相同,所以我想在左侧看到频率,在右侧看到相对频率。这可能吗?
  • 我想我不明白你的问题。好的,所以第一个图是直方图。第二个也是直方图吧?现在您有三种可能性: 1. 混合条形图(上面的解决方案) 2. 将 x 值的偏移量添加到相对频率,以便第二个直方图在右侧 3. 您制作两个图
  • 用一张图片编辑的问题解释了我想要做什么......谢谢。
  • @AnaRaquel 是你要找的吗?
  • 感谢您的回答,但不幸的是这不是我想要的。我只想添加第二个 y 轴(相对频率),但我仍然想要我的正常曲线,如我在第一张图中所示。在你给我的代码中,你正在为正态分布创建一条线......我要问的是,这可能吗?
猜你喜欢
  • 2015-10-11
  • 2015-10-13
  • 1970-01-01
  • 2014-05-09
  • 2015-08-27
  • 2022-10-14
  • 1970-01-01
  • 2019-12-17
  • 2013-02-05
相关资源
最近更新 更多