我是R的新手,我试图将3个直方图绘制到同一个图表上 . 一切都运行正常,但我的问题是你没有看到2个直方图重叠的位置 - 它们看起来相当截止:Histogram
当我制作密度图时,它看起来很完美:每条曲线都被黑色框线包围,颜色在曲线重叠的地方看起来不同:Density Plot
有人可以告诉我,如果第一张照片中的直方图可以实现类似的东西吗?这是我正在使用的代码:
lowf0 <-read.csv (....)
mediumf0 <-read.csv (....)
highf0 <-read.csv(....)
lowf0$utt<-'low f0'
mediumf0$utt<-'medium f0'
highf0$utt<-'high f0'
histogram<-rbind(lowf0,mediumf0,highf0)
ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)
提前感谢任何有用的提示!
3 回答
您当前的代码:
告诉
ggplot
使用f0
中的所有值构造一个直方图,然后根据变量utt
为该单个直方图的条形着色 .你想要的是创建三个单独的直方图,使用alpha混合使它们彼此可见 . 所以你可能想对
geom_histogram
使用三个单独的调用,其中每个调用都有自己的数据框并填充:这是一个输出的具体示例:
产生这样的东西:
编辑修复错别字;你想要填充,而不是颜色 .
使用@joran的样本数据,
请注意
geom_histogram
的默认位置是"stack."看这个页面的“位置调整”:
docs.ggplot2.org/current/geom_histogram.html
虽然在ggplot2中只需要几行来绘制多个/重叠的直方图,但结果并不总是令人满意 . 需要 proper use of borders and coloring 以确保眼睛能够 differentiate between histograms .
以下函数 balancer border colors, opacities, and superimposed density plots 以使查看器能够区分分布 .
Single histogram :
Multiple histogram :
Usage :
只需 pass your data frame into the above functions 以及所需的参数:
plot_multi_histogram中的 extra parameter 是包含类别标签的列的名称 .
通过使用 many different distribution means 创建数据框,我们可以更加明显地看到这一点:
像以前一样传递数据框(并使用选项扩展图表):