使用ggplot2在极坐标图中缺少值

时间:2017-03-06 17:19:41

标签: r plot ggplot2

我正在使用ggplot2制作极地情节。 360附近的数据丢失了。 如何显示所有数据? 这是数据和代码。

getSupportFragmentManager.remove(Fragment fragment)

Angle   Geno
1.252   5
329.714 5
334.74  5
348.166 5
18.29   5
3.035   5
359.855 5
358.348 5
359.855 5
9.317   5
6.195   5
355.281 5
333.29  5
349.235 5
359.855 5
1.219   5
2.058   5
342.205 5
1.764   5
345.321 5
345.234 5
337.606 5
39.661  5
328.425 5
347.59  5
348.545 5

这是情节。

enter image description here

谢谢,

1 个答案:

答案 0 :(得分:1)

你有两个问题正在发生。首先,您使用geom_histogram来计算每个bin中的行数,但看起来您可能实际上希望每个bin中的Geno之和。我们暂时忽略它,然后选择geom_histogram。请详细说明您实际上要做的事情,我们稍后可以回到这个问题。

正如我所说,geom_histogram计算每个bin中的行数。但是对于某些直方图条,该行数大于5。但是,您已将scale_y_continuous设置为c(-5,5)的限制。所以任何高于5的条都会被删除。这是y限制较大的情节:

p5 + geom_histogram(binwidth=22.5) + 
  scale_y_continuous(limits = c(-5, 12), breaks=0:12) +
  scale_x_continuous(limits=c(0,360), breaks=seq(0,360-45,45)) +
  coord_polar(start=pi, direction=-1) 

enter image description here

更新:关于您的评论:是的,我遇到了与scale_y_continuous相同的问题。您的scale_x_continuous也会排除值,因为条形有宽度。最低条延伸到零以下,最高条延伸超过360,因此当x限制设置为0到360时,这两个条都会被排除。我们可以扩展x限制,但是x值必须来自 - 22.5 / 2到360 + 22.5 / 2,而不是从0到360.

相反,让我们更改bin位置,使第一个bin适合0到22.5(而不是-22.5 / 2到22.5 / 2),最后一个bin适合360-22.5到360之间(相反)比在360-22.5 / 2和360 + 22.5 / 2之间)。我们可以使用center geom_histogram参数执行此操作。您只需要给出一个箱子的中心,其余的将相应调整。

p5 + geom_histogram(binwidth=22.5, colour="white", center=22.5/2) + 
  scale_y_continuous(limits = c(-5, 14), breaks=0:15) +
  scale_x_continuous(breaks=seq(0,360,45)) +
  coord_polar(start=pi, direction=-1) 

enter image description here