gpt4 book ai didi

r - 如何使用基数 R 创建堆叠直方图?

转载 作者:行者123 更新时间:2023-12-02 02:44:41 25 4
gpt4 key购买 nike

我已经研究过类似的问题,但没有运气。这是一个示例数据集,但我只使用了性别和权重变量。

structure(list(Name = c("A Lamusi", "Juhamatti Tapio Aaltonen", 
"Andreea Aanei", "Jamale (Djamel-) Aarrass (Ahrass-)", "Nstor Abad Sanjun"
), Sex = c("M", "M", "F", "M", "M"), Age = c(23L, 28L, 22L, 30L,
23L), Height = c(170L, 184L, 170L, 187L, 167L), Weight = c(60,
85, 125, 76, 64), Team = c("China", "Finland", "Romania", "France",
"Spain"), NOC = c("CHN", "FIN", "ROU", "FRA", "ESP"), Games = c("2012 Summer",
"2014 Winter", "2016 Summer", "2012 Summer", "2016 Summer"),
Year = c(2012L, 2014L, 2016L, 2012L, 2016L), Season = c("Summer",
"Winter", "Summer", "Summer", "Summer"), City = c("London",
"Sochi", "Rio de Janeiro", "London", "Rio de Janeiro"), Sport = c("Judo",
"Ice Hockey", "Weightlifting", "Athletics", "Gymnastics"),
Event = c("Judo Men's Extra-Lightweight", "Ice Hockey Men's Ice Hockey",
"Weightlifting Women's Super-Heavyweight", "Athletics Men's 1,500 metres",
"Gymnastics Men's Individual All-Around"), Medal = c(NA,
"Bronze", NA, NA, NA), Num_Sports = c("Judo", "Ice Hockey",
"Weightlifting", "Athletics", "Gymnastics")), row.names = c("1",
"2", "3", "4", "5"), class = "data.frame")

我需要创建一个显示男性和女性体重计数的条形图。我为此使用了 ggplot 并创建了一个堆叠直方图:

enter image description here

ggplot 的代码很简单:
ggplot(data = data, aes(x = Weight, fill = Sex)) + 
geom_histogram(binwidth = 10, position="stack")

但是,我不知道如何使用基数 R 创建一个类似的图。我尝试创建一个包含权重和性别的表格,然后绘制图表,这是来自以下链接的解决方案: Stacked Histograms Using R Base Graphics
tab <- table(data$Sex,data$Weight)
barplot(tab)

但它返回了一个条形过多的图表,因为 Weight 是一个连续变量:
the graph has too many bars

我也试过 hist(tab)hist(data$Weight) ,这显然也不正确。

如何使用基础 R 重新创建图形?谢谢!

最佳答案

您的示例数据中没有足够的观察值,因此我将仅使用 rnorm :

x <- rnorm(100, 10, 1)
y <- rnorm(100, 12, 1)

使用 plot堆叠直方图:

h1 <- hist(x, breaks = 10)
h2 <- hist(y, breaks = 10)

par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)

plot(h1, col = "Red", xlim = c(6, 16), xlab = "Weight", main = NULL)
plot(h2, col = "Blue", xlim = c(6, 16), add = T)

legend(17, 19,c("f", "m"), fill = c("Red", "Blue"), title = "Sex")

stacked histograms

关于r - 如何使用基数 R 创建堆叠直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com