gpt4 book ai didi

r - 在 R 中使用 ggplot2 绘制多个直方图

转载 作者:行者123 更新时间:2023-12-04 00:44:10 26 4
gpt4 key购买 nike

我是 R 和 ggplot2 的新手,在同一个直方图中绘制多个变量时遇到了一些问题。

我的数据已经分组,只需要绘制。数据按周显示,我需要绘制每个类别(A、B、C 和 D)的数字。

Date          A    B    C    D
01-01-2011 11 0 11 1
08-01-2011 12 0 3 3
15-01-2011 9 0 2 6

我希望将日期作为 x 轴,并根据通用 y 轴将计数绘制为不同的颜色。我一次只能绘制其中一个类别,但无法找到像我这样的示例。

这是我用来绘制一个类别的。我很确定我需要使用 position="dodge" 来绘制多个,因为我不希望它被堆叠。

ggplot(df, aes(x=Date, y=A)) + geom_histogram(stat="identity") + 
labs(title = "Number in Category A") +
ylab("Number") +
xlab("Date") +
theme(axis.text.x = element_text(angle = 90))

另外,这给了我一个柱状图,柱状图之间有空格。有什么方法可以删除它吗?我尝试了 spaces=0 就像您在绘制条形图时所做的那样,但它似乎没有用。

我读过一些与我类似的问题,但数据格式不同,我无法调整它以适合我的数据。这是我查看的一些帮助:

Creating a histogram with multiple data series using multhist in R

http://www.cookbook-r.com/Graphs/Plotting_distributions_%28ggplot2%29/

我也不太确定 bin 宽度是多少。我认为数据应该如何间隔或分组,这不适用于我的问题,因为它已经分组了。如果我对此有误,请告诉我。

如有任何帮助,我们将不胜感激。提前致谢!

最佳答案

您并没有真正绘制直方图,您只是绘制了一个看起来有点像直方图的条形图。我个人认为这是一个很好的分面案例:

library(ggplot2)
library(reshape2) # for melt()
melt_df <- melt(df)
head(melt_df) # so you can see it

ggplot(melt_df, aes(Date,value,fill=Date)) +
geom_bar() +
facet_wrap(~ variable)

enter image description here

但是,我认为一般来说,随时间的变化最好用折线图来表示:

ggplot(melt_df,aes(Date,value,group=variable,color=variable)) + geom_line() 

enter image description here

关于r - 在 R 中使用 ggplot2 绘制多个直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371543/

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