如何使用 ggplot2 创建直方图,该图使用 2 个变量(年份和收入),然后分别放在 x 和 y 轴上?

问题描述 投票:0回答:1

我在 R 中使用 2 个变量创建直方图时遇到问题。问题是我需要绘制一个包含 2 个变量(年份和收入)的直方图,这是我从数据集中获取的。我需要以某种方式绘制直方图,以便年份变量位于横轴上,收入变量位于 y 轴上。因此,直方图应显示每年的收入值。如何在 R 中编写代码来绘制这种直方图?

我无法编写脚本,因为绘制直方图的普通代码只需要一个变量,并且会自动显示该变量的频率。

r statistics histogram
1个回答
0
投票

新编辑 我专注于这篇文章的标签,后来才意识到,您对

ggplot
感兴趣。请看最后


作为您进一步学习的开始,我想创建一个人造 DF,我相信它与您可能想到的类似。

library(tidyverse)
set.seed(1)
df <- tibble(
  year = sample(2000:2001, replace = T, 100),
  income = rnorm(100, mean = 100000, sd=1000)
) 

它是一个 DF,有 2 个变量 -

year
income
。 您可以轻松制作每年(只有 2 年)的 income
直方图
。您将认识到
hist
将变量
income
分解为
bins
并计算每个
bin
中的条目数。这里是分别按年份进行的。

par(mfrow=c(1,2))
hist(df$income[df$year == 2000], main = "2000", xlab="", ylim = c(0,14))
hist(df$income[df$year == 2001], main = "2001", xlab="", ylim = c(0,14))

正如您希望在 x 轴上有

year
一样,我将每年的所有收入相加并制作了
barplot
。这不是直方图。

ddf <- df |> 
  group_by(year) |> 
  summarise(income = sum(income)) 

par(mfrow=c(1,1))
barplot(income~year, data = ddf)


GGPLOT

ggplot(df, aes(income, fill = factor(year))) +
  geom_histogram(color = "white")+
  facet_wrap(~year, nrow = 1)

ggplot(df, aes(factor(year), income,fill = factor(year))) +
  geom_col()

您将在R这里找到有关图形的有用信息。

© www.soinside.com 2019 - 2024. All rights reserved.