Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在ggplot2中,是否可以使用包含重叠数据的存储桶创建条形图?_R_Ggplot2_Data Visualization_Bar Chart - Fatal编程技术网

R 在ggplot2中,是否可以使用包含重叠数据的存储桶创建条形图?

R 在ggplot2中,是否可以使用包含重叠数据的存储桶创建条形图?,r,ggplot2,data-visualization,bar-chart,R,Ggplot2,Data Visualization,Bar Chart,我正在制作一个条形图,其中数据被某个连续变量X压缩。我想创建一个条形图,其中存储桶实际上重叠。因此,如果binwidth=1/10,那么第一个条将包含第0到第10个百分位中带有Xs的数据。第二个栏可能包含从第1个百分位到第11个百分位的数据。第三个将包含从第2个百分位到第12个百分位的数据。等等在ggplot中可能有这样的事情吗 编辑: 我应该澄清一下。我不希望这些条在视觉上重叠,所以我删除了你的编辑。相反,我希望相邻的bucket部分共享数据点。值得注意的是 1) 我的X数据已经过百分位数。

我正在制作一个条形图,其中数据被某个连续变量X压缩。我想创建一个条形图,其中存储桶实际上重叠。因此,如果binwidth=1/10,那么第一个条将包含第0到第10个百分位中带有Xs的数据。第二个栏可能包含从第1个百分位到第11个百分位的数据。第三个将包含从第2个百分位到第12个百分位的数据。等等在ggplot中可能有这样的事情吗

编辑:

我应该澄清一下。我不希望这些条在视觉上重叠,所以我删除了你的编辑。相反,我希望相邻的bucket部分共享数据点。值得注意的是

1) 我的X数据已经过百分位数。
2) 条形图报告了带扣数据的汇总统计,如方差


因此,在binwidth为1/10的普通条形图中,第一个条形图表示0-10%的数据,第二个条形图表示10-20%的数据,依此类推。然而,我想要的是,第一条代表0-10个百分位数,第二条代表1-11个百分位数,第三条代表2-12个百分位数,依此类推。这样做的原因只是为了将binwidth与图形上显示的条数解耦。我想要一个宽的桶,但我希望以非常小的间隔查看这些桶,以查看更连续的条形图。

是的,可以使用ggplot。尝试此
ggplot(钻石、aes(清晰度、填充=切割))+geom_条(位置=位置减淡(宽度=0.5))

现在来解释一下

ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar(position = "dodge")
ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar(position = position_dodge(width = 0.5))
代码块中的第一个命令是默认回避(并排条)。 第二个命令是告诉ggplot“闪避”多少,使用width参数。 玩宽度游戏,直到你得到你想要的

阅读此文了解有关道奇位置的更多详细信息。
另外,对于您关于装箱的问题,您可以提供自己的休息时间,阅读此

是的,使用ggplot是可能的。尝试此
ggplot(钻石、aes(清晰度、填充=切割))+geom_条(位置=位置减淡(宽度=0.5))

现在来解释一下

ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar(position = "dodge")
ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar(position = position_dodge(width = 0.5))
代码块中的第一个命令是默认回避(并排条)。 第二个命令是告诉ggplot“闪避”多少,使用width参数。 玩宽度游戏,直到你得到你想要的

阅读此文了解有关道奇位置的更多详细信息。
另外,对于你关于装箱的问题,你可以提供你自己的休息时间,阅读此

达到极限,你正在做的是绘制一个内核密度函数。在这里,我创建了一个包含200个随机正态观测值的向量,并使用
stat\u density
绘制滚动密度:

vec <- rnorm(200)
qplot() + stat_density(aes(x=vec))

vec说到极限,你要做的是绘制一个核密度函数。在这里,我创建了一个包含200个随机正态观测值的向量,并使用
stat\u density
绘制滚动密度:

vec <- rnorm(200)
qplot() + stat_density(aes(x=vec))

vec您最好先存储自己的数据,然后根据需要进行绘图。它会给你更多的灵活性。同意@BrodieG的观点,即
rollappy()
是最简单的方法,例如

require(ggplot2)
require(zoo)

p_data<-data.frame(n=0:99,p=runif(100)*10)
window<-10

buckets<-data.frame(label=rollapply(p_data$n,10,function(x)paste(x[1],x[window],sep="-")))
buckets$avg<-rollapply(p_data$p,window,mean)  # mean
buckets$tot<-rollapply(p_data$p,window,sum)   # total
buckets$var<-rollapply(p_data$p,window,var)   # variance
buckets$custom<-rollapply(p_data$p,window,function(x)x[1]+x[2]+5)   # anything you like

qplot(buckets$label,buckets$avg,geom="line",group=1) +     # plot mean
  theme(axis.text.x = element_text(angle = 90, hjust = 1))
require(ggplot2)
需要(动物园)

p_data最好先存储自己的数据,然后根据需要绘图。它会给你更多的灵活性。同意@BrodieG的观点,即
rollappy()
是最简单的方法,例如

require(ggplot2)
require(zoo)

p_data<-data.frame(n=0:99,p=runif(100)*10)
window<-10

buckets<-data.frame(label=rollapply(p_data$n,10,function(x)paste(x[1],x[window],sep="-")))
buckets$avg<-rollapply(p_data$p,window,mean)  # mean
buckets$tot<-rollapply(p_data$p,window,sum)   # total
buckets$var<-rollapply(p_data$p,window,var)   # variance
buckets$custom<-rollapply(p_data$p,window,function(x)x[1]+x[2]+5)   # anything you like

qplot(buckets$label,buckets$avg,geom="line",group=1) +     # plot mean
  theme(axis.text.x = element_text(angle = 90, hjust = 1))
require(ggplot2)
需要(动物园)

p_数据这种图表的目的是什么?我这样问是因为尽管我不知道如何使条重叠,但可能有一种图形适合您的目的。这样做的原因只是为了将binwidth与图形上显示的条数解耦。我想要一个宽的桶,但我想以非常小的间隔查看这些桶,以查看更连续的条形图。基本上,这只是为了平滑可视化。这样一个图表的目的是什么?我这样问是因为尽管我不知道如何使条重叠,但可能有一种图形适合您的目的。这样做的原因只是为了将binwidth与图形上显示的条数解耦。我想要一个宽的桶,但我想以非常小的间隔查看这些桶,以查看更连续的条形图。基本上,这只是为了使视觉效果变得平滑。我不相信这能解决我的问题,但我可能错了。我通过编辑进一步澄清了我的问题。我不认为这解决了我的问题,但我可能错了。我通过编辑进一步澄清了我的问题。谢谢,很高兴知道。我可以显示一个比计数更复杂的汇总统计信息吗?如果我有vec2,我不知道是否可以直接完成,但您可以很容易地使用
zoo::rollapply
通过向量中值的滚动窗口运行函数。因此,在本例中,您将绘制
rollappy(vec,width=10,var)
的结果,该结果将计算
vec
中所有10个连续点集的方差。感谢您的了解。我可以显示一个比计数更复杂的汇总统计信息吗?如果我有vec2,我不知道是否可以直接完成,但您可以很容易地使用
zoo::rollapply
通过向量中值的滚动窗口运行函数。因此,在本例中,您将绘制
rollappy(vec,width=10,var)
的结果,该结果将计算
vec
中所有10个连续点集的方差。