R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据

漂亮的圆形图。我不确定对数据分析师本身是否有额外的好处,但如果能吸引决策者的注意,那对我来说就是额外的价值。

由Kaizong Ye,Coin Ge撰写

然而,用coord\_polar()或偶尔发现的ggplot2中的coord\_radar()构建它们可能很难。

我发现的两个主要问题是,极坐标的变化会使你的路径弯曲成圆形,而且雷达无法与geom_bin结合使用来填充背景。

这就是为什么我通常在笛卡尔坐标系统中使用。更像是一种数学解决方案。映射您的数据和绘图需求,使其最终成为圆环。

作为一个额外的好处,我还发现它的构建/加载速度更快。对我来说很重要,因为我让它们在 Shiny Apps 中交互。


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

我在示例中使用了 mtcars 数据。该图显示了集合中的 12 辆汽车:

  • 背景中的气缸。4、6 和 8 缸的浅色、中色和深色。
  • 用蓝色标出每辆车每加仑的里数。

这篇文章是逐步展示如何将所需的元素添加到圆形图中。很多东西可能可以改进,请随时发表评论。

我使用前 12 辆汽车,并希望有一列包含行名。

add_rownames\[1:12,\]

绘制数据映射

为了映射我想绘制的任何列的值,我创建了函数。它基本上会检查您想要绘制多少个变量并为 x 和 y 值绘制正弦曲线。

  lev <- levels
  num <- length

  dir <- rep
  dir_ <- map_dbl
  interp
  data <- mutate_

存储映射数据以映射所有标签的 mpg 变量。

# 数据点
rotate_data

我想展示绘图范围数据,所以我伪造了一系列 qsec 数据。基本上,您为每辆车(标签)上的 qsec 生成一个具有多个值(行)的数据框。

#编造一些范围数据
bind_rows
rotate_data

使用polygon 绘制范围,使用 path 和 point 绘制 mpg 值。

lim <- max
#  用自己的数据和美学来绘制每一层的图案
ggplot() + 
  geom_polygon+
  geom_point+
  theme+ 
  coord_equal

径向线

我猜想要的网格是由带圆圈的径向向外线组成的。创建 x、xend、y 和yend 数据点以绘制其间的线段。


R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)

阅读文章


r <- data_frame %>% 
  mutate
r$xed <- 0
r$yed <- 0
#用自己的数据和美学来绘制每一层的图案

ggplot() + 
  geom_segment +
  geom_polygon+
  geom_point +
  ylim + xlim +
  theme+ 
  coord_equal


随时关注您喜欢的主题


标签

为您旋转的变量添加文本标签。

label <- levels
ggplot() + 
  geom_segment +
  geom_polygon +
  geom_path +
  geom_point +
  geom_text+
  theme + 
  coord_equal

绘制圆圈

要绘制圆圈,我将使用带有填充选项的 circle。

  t <- seq
  d <- data.frame
  if(fed==TRUE) { # #在中心添加一个点,使整个 "饼 "被填满
    d <- rbind
  }
  return(d)

网格圆圈和标签

圆形网格线是通过多次调用 circle 并将所有点存储在数据框中来构建的。

cregrd <- data_frame
crld <- cili %>% 
  mutate

poties <- bind_rows
loics$lv <- as.factor

可以通过多种方式添加圆形标签。但是为了简单地将所有轴文本和轴标签设置为blank,我构建了一个可以使用 text 绘制的数据框。

c <- data_frame
cl <- cl\[x <= max,\]
ggplot() + 
  geom_segment +
  geom_path+ 
  geom_text+
  geom_polygon +
  geom_point +
  geom_text + xlim +
  theme+ 
  coord_equal

使用 circle,您还可以轻松构建圆部分,您可以使用 Filled = TRUE 参数填充该部分。

背景

有一点 -1/num 偏移以使该部分正确对齐。在这里,您提出了您要为其着色的因子变量。当然,您还可以更改代码以根据变量更改每个条的“高度”。

num      <- length
levels   <- rev
tart    <- seq

bg  <- data_frame
  mutate

bgdta <- tdf
bgdta$lv <- as.factor

中心圆

细节不多,但您可能想添加一些中心圆。

lm <- max
ggplot() + 
  geom_polygon+
  geom_segment +
  geom_path+ 
  geom_text +
  geom_polygon+ 
  geom_polygon+
  geom_path +
  geom_point +
  geom_text +
  ylim + xlim +
  theme + 
  coord_equal

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds