如何在 base R 的直方图上绘制 2 条曲线?
How to plot 2 curves on a histogram in base R?
我用基数 R 制作了这个直方图:
代码如下:
data=read.csv("cholesterol.csv")
newdata=subset(data, data$SEX=="female")
newdata1=subset(data, data$SEX=="male")
hist(newdata$CHOLESTEROL,breaks=10,col=rgb(red = F, green = T, blue = F,
alpha = 0.3), xlim=c(0,350), ylim=c(0,25), xaxs="i", yaxs="i", las=1, main="", xlab="Cholesterol", ylab="Frequentie", border=rgb(red = F, green = T, blue = F, alpha = 0.3))
hist(newdata1$CHOLESTEROL, breaks=10,col=rgb(red = T, green = F, blue = F, alpha = 0.4), border=rgb(red = T, green = F, blue = F, alpha = 0.4), add=T)
legend('topright', c('Female','Male'),fill = rgb(0:1,1:0,0,0.4), bty='n', border = NA)
我现在想在此直方图上绘制一条曲线,并且我希望每个组(女性和男性)都有一条不同的曲线。
我尝试了几个突击队(例如 lines(density(newdata$CHOLESTEROL), col="red", lty=1, lwd=1)
),但其中 none 导致了曲线。我在网上也找不到解决办法,所以我希望有人能帮助我:)
尝试将 probability=TRUE
添加到对 hist
的调用中。这会将直方图缩放到面积为 1,与 density
的结果相同,以便它们可以很好地绘制在一起。您上面的代码可能添加了曲线,但由于缩放比例不同,它看起来像底部的水平线。
我用基数 R 制作了这个直方图:
代码如下:
data=read.csv("cholesterol.csv")
newdata=subset(data, data$SEX=="female")
newdata1=subset(data, data$SEX=="male")
hist(newdata$CHOLESTEROL,breaks=10,col=rgb(red = F, green = T, blue = F,
alpha = 0.3), xlim=c(0,350), ylim=c(0,25), xaxs="i", yaxs="i", las=1, main="", xlab="Cholesterol", ylab="Frequentie", border=rgb(red = F, green = T, blue = F, alpha = 0.3))
hist(newdata1$CHOLESTEROL, breaks=10,col=rgb(red = T, green = F, blue = F, alpha = 0.4), border=rgb(red = T, green = F, blue = F, alpha = 0.4), add=T)
legend('topright', c('Female','Male'),fill = rgb(0:1,1:0,0,0.4), bty='n', border = NA)
我现在想在此直方图上绘制一条曲线,并且我希望每个组(女性和男性)都有一条不同的曲线。
我尝试了几个突击队(例如 lines(density(newdata$CHOLESTEROL), col="red", lty=1, lwd=1)
),但其中 none 导致了曲线。我在网上也找不到解决办法,所以我希望有人能帮助我:)
尝试将 probability=TRUE
添加到对 hist
的调用中。这会将直方图缩放到面积为 1,与 density
的结果相同,以便它们可以很好地绘制在一起。您上面的代码可能添加了曲线,但由于缩放比例不同,它看起来像底部的水平线。