r - 如何在一张图中绘制 2 个直方图(不同的行长)(ggplot)
问题描述
我有 2 个直方图,我想将它们组合成一个图。不知何故,我无法将它们都加在一起。一个数据帧的长度为 1000,另一个数据帧的长度为 1000。
以下代码给了我一个错误:
Error: `mapping` must be created by `aes()`
我怎样才能将它们与传奇结合起来?
p <-ggplot(prediction_3)+
geom_histogram(aes(x=prediction_3), binwidth = 0.01)
p + geom_histogram(prediction_2b, aes(x=prediction),binwidth = 0.01, fill = "red", alpha = 0.7)+
geom_vline(xintercept=prediction_1)+
geom_text(aes(0.5,prediction_1,label = 0.469, vjust = 1))
各个直方图如下:
任何帮助将不胜感激。谢谢你
编辑:
prediction_2b$value <- 'prediction_2b'
prediction_3$value <- 'prediction_3'
combined_pred <- rbind(prediction_2b, prediction_3)
出现错误:
Error in match.names(clabs, names(xi)) : names do not match previous names
解决方案
怎么样,使用一些虚假数据,因为没有你的:
library(tidyverse)
# fake data
prediction_1 = 0.469
prediction_3 <- data.frame(prediction_3 = rnorm(1000, 4, 3))
prediction_2b <- data.frame(prediction = rnorm(10000, 8, 3))
这里是分开的地块:
ggplot(prediction_3)+
geom_histogram(aes(x=prediction_3), binwidth = 0.01)
ggplot(prediction_2b)+
geom_histogram(aes(x=prediction), binwidth = 0.01)
要将它们绘制在一起,您可以在此处手动将它们以长格式融合:
dats <- rbind(data.frame(pred = prediction_3$prediction_3, var = 'prediction_3'),
data.frame(pred = prediction_2b$pred, var = 'prediction_2b'))
# here the plot
ggplot(dats, aes(pred, fill = var)) +
geom_histogram(alpha = 0.5, position = "identity", bins = 75) +
geom_vline(xintercept=prediction_1)
推荐阅读
- android - 这种基于多个 TImage 的可滚动 UI 设计对 Android 来说是错误的吗?
- jquery - jquery datatable ajax 没有可用的数据 mvc
- python - 熊猫合并或加入较小的数据框
- batch-file - bat 文件回显多行
- mysql - 在MySql中一对多关系的情况下,如何根据同一行另一列的值获取一列的值
- amazon-web-services - 如何使用MWS API区分亚马逊上同一卖家的两个不同商店的订单?
- angular - 如何使用Angular6在父组件中添加多个组件
- javascript - JavaScript 数组与对象的性能
- regex - 正则表达式的无效匹配('\pL' 在字符类中不起作用)
- google-places-api - 谷歌地方,不同的 api 密钥得到“你已经超出了这个 API 的每日请求配额”。