首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据

然而,用coord\_polar()或偶尔发现的ggplot2中的coord\_radar()构建它们可能很难。我发现的两个主要问题是,极坐标的变化会使你的路径弯曲成圆形,而且雷达无法与geom_bin结合使用来填充背景。

这就是为什么我通常在笛卡尔坐标系统中使用。更像是一种数学解决方案。映射您的数据和绘图需求,使其最终成为圆环。作为一个额外的好处,我还发现它的构建/加载速度更快。对我来说很重要,因为我让它们在 Shiny Apps 中交互。

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

背景中的气缸。4、6 和 8 缸的浅色、中色和深色。

用蓝色标出每辆车每加仑的里数。

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

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

add_rownames\[1:12,\]绘制数据映射

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

lev 

num 

dir 

dir_ 

interp

data 

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

# 数据点

rotate_data

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

#编造一些范围数据

bind_rows

rotate_data

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

lim 

#  用自己的数据和美学来绘制每一层的图案

ggplot() +

geom_polygon+

geom_point+

theme+

coord_equal

径向线

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

r %

mutate

r$xed 

r$yed 

#用自己的数据和美学来绘制每一层的图案

ggplot() +

geom_segment +

geom_polygon+

geom_point +

ylim + xlim +

theme+

coord_equal

标签

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

label 

ggplot() +

geom_segment +

geom_polygon +

geom_path +

geom_point +

geom_text+

theme +

coord_equal

绘制圆圈

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

if(fed==TRUE) { # #在中心添加一个点,使整个 "饼 "被填满

}

return(d)网格圆圈和标签

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

cregrd 

crld %

mutate

poties 

loics$lv 

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

cl 

ggplot() +

geom_segment +

geom_path+

geom_text+

geom_polygon +

geom_point +

geom_text + xlim +

theme+

coord_equal

背景

使用 circle,您还可以轻松构建圆部分,您可以使用 Filled = TRUE 参数填充该部分。有一点 -1/num 偏移以使该部分正确对齐。在这里,您提出了您要为其着色的因子变量。当然,您还可以更改代码以根据变量更改每个条的“高度”。

num      

levels   

tart    

bg  

mutate

bgdta 

bgdta$lv 中心圆

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

lm 

ggplot() +

geom_polygon+

geom_segment +

geom_path+

geom_text +

geom_polygon+

geom_polygon+

geom_path +

geom_point +

geom_text +

ylim + xlim +

theme +

coord_equal

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221229A05VIT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券