簡體   English   中英

如何使用 ggplot2 在極坐標中繪制二維熱圖?

[英]How to draw a 2d heatmap in polar coordinates with ggplot2?

我有一個帶有平面速度矢量的 x 和 y 分量的小標題。 如果我用常規坐標繪制 2d 熱圖,我會得到預期的結果:

dyn_v %>% ggplot() + geom_bin2d(aes(vx, vy)) + scale_fill_viridis(trans = 'log10')

在此處輸入圖像描述

但是,應用coord_polar后,我得到以下信息:

dyn_v %>% ggplot() + geom_bin2d(aes(vx, vy)) + scale_fill_viridis(trans = 'log10') + coord_polar() 

在此處輸入圖像描述

這里顯然有一個錯誤——熱點應該在中心。 我究竟做錯了什么?

知道了。 如果你想在極域中 plot,你需要提供極坐標,簡單地應用coord_polar是行不通的。

因此,如果您有一個包含xy列的 tibble T並且您想要 plot 為其提供極坐標熱圖,則首先將xy轉換為rphi ,然后將它們傳遞給geom_bin2d


    (T
      %>% mutate(phi = (180/pi)*atan2(y, x))
      %>% mutate(r = sqrt(x*x + y*y))
      %>% ggplot(aes(phi, r))
      + geom_bin2d()
      + coord_polar()
      + scale_fill_viridis(trans = 'log10')
    )

在此處輸入圖像描述

暫無
暫無

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

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