R ggplot - 如何将这两个直方图组合成一个整体直方图进行比较?
Posted
技术标签:
【中文标题】R ggplot - 如何将这两个直方图组合成一个整体直方图进行比较?【英文标题】:R ggplot - How can I combine these 2 histograms into one overall histogram for comparison? 【发布时间】:2021-09-05 15:38:48 【问题描述】:所以目前我创建了 2 个单独的 geom_histograms,并希望将它们合并为一个 geom_histogram。基本上蓝色图表与下面的红色图表平行排列,这样我就可以看到每个 x 轴值的某种比较:
#第一个关于科学重要性的直方图
```r
lab_data_science <- filter(lab_data, lab_data$V202310 >=2)
science_importance_hist <- lab_data_science %>%
ggplot() +
aes(x = V202310) +
geom_histogram(position = 'dodge', bins = 4, fill='blue') +
labs(
title = 'Importance of Science in Decisions About COVID-19',
subtitle = '2 = Little Important, 3 = Moderately Important, 4 = Very Important, 5= Extremely Important',
x = 'Importance Scale (2 to 5)',
y = 'Count',
fill = 'Republican'
)
science_importance_hist
```
Histogram#1 结果图片如下: C:\Users\Austin Jin\Desktop\pic1.PNG
#关于州长处理 COVID-19 的反对意见的第二个直方图
```r
lab_data_science2 <- filter(lab_data, lab_data$V201147x >= 1)
governor_covid_disapprovals_hist <- lab_data_science %>%
ggplot() +
aes(x = V201147x) +
geom_histogram(position = 'dodge', bins = 4, fill= 'red') +
labs(
title = 'Approvals and Disapprovals of Governor Handling COVID-19',
subtitle = '1 = Approve Strongly, 2 = Approve Not Strongly, 3 = Disapprove Not Strongly, 4= Disapprove Strongly',
x = 'Approval Scale (1 to 4)',
y = 'Count',
fill = 'Republican'
)
governor_covid_disapprovals_hist
```
Histogram#2 结果图片如下: C:\Users\Austin Jin\Desktop\pic2.PNG
任何见解都将不胜感激,因为我一直在努力将两个直方图合并为一个直方图以进行并排比较。在此先感谢您,并确保对提供准确回复的人给予很好的奖励!
【问题讨论】:
我不确定我是否理解所需的结果。 “将两个直方图组合成一个直方图”到底是什么意思。究竟会是什么样子?如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。 是的,就像下图的样子:i.stack.imgur.com/lGuxt.png(基本上能够将 science_importance_hist 的 x 轴值与Governor_covid_disapprovals_hist x 轴值并排放置)跨度> 嗯,这是一张条形图的图片。不是直方图。直方图通常用于连续数据,而条形图用于离散数据。您究竟想如何汇总数据? 几乎我希望将 science_importance_hist 中每个值的总和以及Governor_covid_disapprovals_hist 中每个值的总和放在一个直方图的同一 x 轴上,以便进行并排比较查看两个直方图之间是否存在某种关系 lab_data_science2是如何进入的?您是想将它用于第二个直方图吗? 【参考方案1】:虽然由于您没有可重复的数据而很难确定,但我认为您想要做的是从tidyr()
到pivot_long()
,我建议您使用geom_col
。假设您已经计算了计数,您可以使用 dplyr::summarize()
进行计算。
注意我正在创建示例数据。
covid <- c(15, 23, 10, 4)
science <- c(12,19, 18, 0)
labels <- c("excellent", "good", "subpar", "decent")
df <-data.frame (labels, covid, science)
df_long <- tidyr::pivot_longer(df, names_to= "Question", values_to = "count", cols = c("science", "covid"))
ggplot(df_long, aes(y = count, x = labels, fill = Question)) +
geom_col( position = "dodge2", width = .5)
【讨论】:
这对 Elin 有帮助,但是我收到一条消息,参数暗示不同的行数:7265、8218 我相信只要解决了这个行数不同的问题,这个问题就解决了!以上是关于R ggplot - 如何将这两个直方图组合成一个整体直方图进行比较?的主要内容,如果未能解决你的问题,请参考以下文章
R ggplot 直方图。如何根据另一个变量更改条形的颜色?