繁体   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