簡體   English   中英

ggplot coord_polar()在頂部和底部的pi / 2和-pi / 2之間繪制

[英]ggplot coord_polar() plotting between pi/2 and -pi/2 at top and bottom

我有一組介於pi / 2和-pi / 2之間的值。 我想使用直方圖幾何圖形和極坐標圖來繪制它們,因此在極坐標的頂部有pi / 2,在底部有-pi / 2。

我正在使用的數據文件: https : //www.dropbox.com/s/i9npm6whxi9ok5d/ellipse_df.csv?dl=0

ggplot(ellipse_df) +
  geom_histogram(aes(theta)) +
  coord_polar(start = pi/2, direction = -1)

下圖左側的x軸捏住似乎有些有趣:

在此處輸入圖片說明

您需要scale_x_continuous(expand = c(0,0)) ggplot在所有比例尺的ggplot自動ggplot一點,以使繪圖周圍有一個漂亮的邊框,但是在極坐標中,您通常希望它無間隙地環繞。


更新了其他步驟以修飾外觀:

  ggplot(ellipse_df, aes(theta/(pi))) + 
  geom_histogram(binwidth = .05, colour = "white", boundary = 0) +
  scale_x_continuous(expand = c(0,0), breaks = -2:2/4, 
                     labels = c(expression(frac(-pi, 2)), 
                                expression(frac(-pi, 4)), 
                                "0", 
                                expression(frac(+pi, 4)), 
                                expression(frac(+pi, 2)))) +
  coord_polar(start = pi/2, direction = -1)

如果你運行這個參數geom_histogram沒有 coord_polar ,可以診斷這是怎么回事:

在此處輸入圖片說明

默認的30個bin在數據的上邊緣留有一個,幾乎沒有觀察到。 通過強制垃圾箱具有一定的寬度並選擇0是中心還是邊緣,可以強制垃圾箱與數據范圍整齊地對齊。

在此處輸入圖片說明

然后,當您將其轉換為極坐標時,它看起來像您想要的,我假設:

在此處輸入圖片說明


更新以將比例更改為相等的弧度

為了使-pi / 2到pi / 2成為圓的右半部分,您需要擴展x限制:

  ... +
  scale_x_continuous(expand = c(0,0), 
                     breaks = c(-4, -2:2, 4)/4, 
                     limits = c(-1, 1),           # this is the important change
                     labels = c(expression(-pi),
                                expression(frac(-pi, 2)), 
                                expression(frac(-pi, 4)), "0", 
                                expression(frac(+pi, 4)),
                                expression(frac(+pi, 2)),
                                expression(+pi))) + ...

由於(按pi縮放后),您的數據從-1/2變為1/2,但是您希望該圖將-1顯示為1,因此必須告訴它顯示所有非數據空間。

在此處輸入圖片說明

在此處輸入圖片說明

如果您的下一個問題是:我如何將其顯示為半圓而不在左側浪費空間? 我會先發制人地回答說,這更具挑戰性,將涉及到預先計算直方圖值並將每個條形的角“手動”轉換為極坐標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM