Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用雷达/极坐标图描述单个数据点

用雷达/极坐标图描述单个数据点
EN

Stack Overflow用户
提问于 2017-12-07 14:27:21
回答 1查看 501关注 0票数 4

下面是我的上一篇文章:How to measure the area of a polygon in ggplot2?

我现在想要做的是把得到的雷达图表作为一个完全独立的散射点中的数据点,或者保存这个物体,然后用它在图表上描述实际数据的形状。

我有很多文件,它们通常都是这样的。它们的数量从1到许多,分数总是以降序的形式出现。ie #1总是在任何给定的文件中贡献最大。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myfile
01 0.31707317
02 0.12195122
03 0.09756098
04 0.07317073
05 0.07317073
06 0.07317073
07 0.07317073
08 0.07317073
09 0.04878049
10 0.04878049

在这里,我想为每个这些文件绘制一个雷达图表,并得到形状与周围没有网格。ggradar是我发现的最接近也是最美好的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggradar(as.matrix(t(radar)), group.point.size = 2, grid.line.width = 0, grid.max = 1.0, grid.mid = 0, 
    grid.min = 0, axis.line.colour = "white", axis.label.size = 0, grid.label.size = 0, 
    centre.y = 0, background.circle.colour = "white", group.colours = "black", group.line.width = 1) 

当我想使用这些形状作为数据点时,问题就开始了。

@brian善意地评论并暗示了如何处理这个问题。

points: how to swap points with pie charts?

Small ggplot2 plots placed on coordinates on a ggmap

受这些注释的启发,我现在可以将绘图单元与文件名一起保存为一列,并使用相同的管道继续添加新文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  for (file in file_list){
#eliminate the empty files (they contain only the header)
if (file.size(file) > 420){
  # if the merged dataset does exist, append to it
  if (exists("dfradar")){
    radarfile <-read.table(file, header=TRUE, sep="\t")
    radarfile1 <- as.data.frame(as.numeric(radarfile[,3]))
    rownames(radarfile1) <- c(1:nrow(radarfile))
    dfradar1 <- ggradar(t(radarfile1), group.point.size = 1, grid.line.width = 0, grid.max = 1, grid.mid = 0, 
                        grid.min = 0, axis.line.colour = "white", axis.label.size = 0, grid.label.size = 0, 
                        centre.y = 0, background.circle.colour = "white", group.colours = "black", group.line.width = 0.5) + 
                    theme(legend.position = "none")      
    dfradar1 <- cbind(substring(file,11), dfradar1)
    dfradar <- rbind(dfradar, dfradar1)
  }  
  # if the merged dataset doesn't exist, create it
  if (!exists("dfradar")){
    radarfile <- read.table(file, header=TRUE, sep="\t")
    radarfile1 <- as.data.frame(as.numeric(radarfile[,3]))
    rownames(radarfile1) <- c(1:nrow(radarfile))
    dfradar <- ggradar(t(radarfile1), group.point.size = 1, grid.line.width = 0, grid.max = 1, grid.mid = 0, 
                        grid.min = 0, axis.line.colour = "white", axis.label.size = 0, grid.label.size = 0, 
                        centre.y = 0, background.circle.colour = "white", group.colours = "black", group.line.width = 0.5) + 
                theme(legend.position = "none")
    dfradar <- cbind(substring(file,11), dfradar)
    rm(radarfile)
    rm(radarfile1)
  }
} }

现在,当我想拯救格罗布一家时,我做不到;我得到了:

Mutate_impl中的错误(.data,dots):评估错误:尝试应用非函数.

或者:

“plot_clone中的错误(图):尝试应用非函数”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# merge the df with another df containing all other 
# variables that I wanna use in my scatterplot
dfradar_merge <- merge(dfradar, Cases, all=FALSE)
dfradar_merge <-  dfradar_merge %>% mutate(radargrobs = list(annotation_custom(ggplotGrob(radarplots)), 
xmin = as.numeric(Gender), xmax = as.numeric(Gender)*1.2, 
ymin = as.numeric(Age) , ymax = as.numeric(Age)*1.2)))

我想如果我能把这个部分弄清楚,把变量作为xmin和ymin传递给我,我应该能够做我需要做的事情。

任何想法都是非常感谢的。我一直很头疼。

EN

回答 1

Stack Overflow用户

发布于 2017-12-08 19:32:22

我想出了以下的想法。我用ggradar软件包创建了一个图形。然后,我研究了保存在ggplot_build()图形后面的数据帧。在图表后面似乎有13张列表。我需要调查哪一个列表是正确的一个包含多边形数据。我发现第六份清单是你想要提取并保存下来以备将来使用的一份。让我给你看看我做了什么。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
library(ggradar)
library(scales)

# I modified the code from https://github.com/ricardo-bion/ggradar to get a graphic.

mtcars %>%
mutate_all(rescale) %>%
mutate(group = rownames(mtcars)) %>%
slice(5:9) %>%
select(1:4) -> mtcars_radar

g <- ggradar(mtcars_radar)

上面的代码生成以下图形。我的电脑或其他东西出了问题,我没有看到完整的图形。但这不是这个问题的问题。

现在,我们希望将数据保存在图形后面,并寻找正确的数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foo <- ggplot_build(g)$data

# This is the 6th list in foo.

 $ :'data.frame':   20 obs. of  8 variables:
  ..$ colour  : chr [1:20] "#FF5A5F" "#FF5A5F" "#FF5A5F" "#FF5A5F" ...
  ..$ x       : num [1:20] 0 0.72 -0.687 0 0 ...
  ..$ y       : num [1:20] 1.111 -0.416 -0.397 1.111 0.611 ...
  ..$ group   : atomic [1:20] 1 1 1 1 2 2 2 2 3 3 ...
  .. ..- attr(*, "n")= int 5
  ..$ PANEL   : Factor w/ 1 level "1": 1 1 1 1 1 1 1 1 1 1 ...
  ..$ size    : num [1:20] 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 ...
  ..$ linetype: num [1:20] 1 1 1 1 1 1 1 1 1 1 ...
  ..$ alpha   : logi [1:20] NA NA NA NA NA NA ...

您希望将此列表提取为数据框架。我之所以能发现这个列表,是因为我注意到了颜色信息(例如,FF5A5F)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mydf <- foo[[6]]

    colour          x          y group PANEL size linetype alpha
1  #FF5A5F  0.0000000  1.1111111     1     1  1.5        1    NA
2  #FF5A5F  0.7203077 -0.4158698     1     1  1.5        1    NA
3  #FF5A5F -0.6868360 -0.3965450     1     1  1.5        1    NA
4  #FF5A5F  0.0000000  1.1111111     1     1  1.5        1    NA
5  #FFB400  0.0000000  0.6111111     2     1  1.5        1    NA
6  #FFB400  0.4286803 -0.2474987     2     1  1.5        1    NA
7  #FFB400 -0.2584135 -0.1491951     2     1  1.5        1    NA
8  #FFB400  0.0000000  0.6111111     2     1  1.5        1    NA
9  #007A87  0.0000000  1.1111111     3     1  1.5        1    NA
10 #007A87  0.7203077 -0.4158698     3     1  1.5        1    NA
11 #007A87 -0.4726248 -0.2728700     3     1  1.5        1    NA
12 #007A87  0.0000000  1.1111111     3     1  1.5        1    NA
13 #8CE071  0.0000000  0.1111111     4     1  1.5        1    NA
14 #8CE071  0.2467912 -0.1424850     4     1  1.5        1    NA
15 #8CE071 -0.2278119 -0.1315273     4     1  1.5        1    NA
16 #8CE071  0.0000000  0.1111111     4     1  1.5        1    NA
17 #7B0051  0.0000000  0.1111111     5     1  1.5        1    NA
18 #7B0051  0.2595364 -0.1498434     5     1  1.5        1    NA
19 #7B0051 -0.1268266 -0.0732234     5     1  1.5        1    NA
20 #7B0051  0.0000000  0.1111111     5     1  1.5        1    NA

让我们确认一下,这些数据是否再现了ggradar图形中的五个三角形。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gg <- ggplot(data = mydf, aes(x = x, y = y, group = group, color = factor(group))) +
      geom_path(show.legend = FALSE) +
      theme_bw()

总之,您希望对ggplot进行黑客攻击,以提取所需的数据。此方法允许您为所需的“形状”保存数据。我希望这就是你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47704875

复制
相关文章
UML用例图及其用例描述
UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支 持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。在系统分析阶段,我们一般用UML来画很多图,主要包括用例图、状态图、类图、活动 图、序列图、协作图、构建图、配置图等等,要画哪些图要根据具体情况而定。其实简单的理解,也是个人的理解,UML的作用就是用很多图从静态和动态方面来 全面描述我们将要开发的系统。
麦克劳林
2019/04/22
1.9K0
UML用例图及其用例描述
用数学思维实现雷达分析图
前段时间回看里约奥运会的国球比赛,岛国媒体给我龙队一个响亮的称号—— 六边形战士 !
蜻蜓队长
2018/08/03
9020
用数学思维实现雷达分析图
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
漂亮的圆形图。我不确定对数据分析师本身是否有额外的好处,但如果能吸引决策者的注意,那对我来说就是额外的价值。
拓端
2022/01/13
3K0
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
手把手教你用plotly绘制excel中常见的16种图表(上)
最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制!
可以叫我才哥
2021/08/05
3.9K0
雷达图
let option = { /* 标题 / title: { text: '自定义雷达图' }, / 说明图 / legend: { data: ['图一','图二', '张三', '李四'] }, radar: [ { / 边角label / indicator: [ { text: '指标一' }, { text: '指标二' }, { text: '指标三' }, { text: '指标四' }, { text: '指标五' } ], / 边角label展示名称
onety码生
2020/09/18
1K0
用canvas实现一个雷达图
**radarChart.init(jsDomElement, options)**方法接受两个参数,分别是:
Jean
2021/06/16
1.4K1
用canvas实现一个雷达图
论文画图神器!9种统计学图形的matplotlib画法|收藏收藏!
上一讲,我们给大家介绍了matplotlib的快速上手教程,介绍了常用的线性图形与散点图的画法。
小雨coding
2021/07/27
2.7K0
论文画图神器!9种统计学图形的matplotlib画法|收藏收藏!
matplotlib 雷达图/蛛网图
第一个例子来自matplotlib官网,封装比较多,看起来有点复杂,但本质上是在极坐标系下画封闭的曲线图。
用户6021899
2019/08/14
2.1K0
RoLM: 毫米波雷达在激光雷达地图上的定位
作者:Yukai Ma , Xiangrui Zhao , Han Li , Yaqing Gu , Xiaolei Lang ,Yong Liu
点云PCL博主
2023/09/11
4670
RoLM: 毫米波雷达在激光雷达地图上的定位
绘制极坐标系条形图
df<-read.csv("/home/shijm/Rlearning/Beautiful-Visualization-with-R-master/第3章_类别比较型图表/PloarRange_Data.csv",sep=",",na.strings="NA",stringsAsFactors=FALSE) > df$date<-as.Date(df$date) > > myAngle <-seq(-20,-340,length.out = 12) > > ggplot(df, aes(date,
爱学习的小明明
2020/09/20
1.2K0
Python绘制雷达图
雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形。雷达图可以形象地展示相同事物的多维指标,应用场景非常多。
数据森麟
2021/03/09
3.4K0
Python绘制雷达图
Python matplotlib绘制雷达图
雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形。雷达图可以形象地展示相同事物的多维指标,应用场景非常多。
Python碎片公众号
2021/02/26
2.9K0
Python matplotlib绘制雷达图
Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
功能描述: 根据给定数据,绘制南丁格尔玫瑰图,也就是在极坐标系中绘制柱状图。 参考代码: 绘制结果:
Python小屋屋主
2020/03/19
1.7K0
Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
图表6 雷达图
6、图表6 雷达图1.雷达图的实现步骤步骤1 ECharts 最基本的代码结构<!DOCTYPE html> <html lang="en"> <head> <script src="js/echarts.min.js"></script> </head> <body> <div style="width: 600px;height:400px"></div> <script> var mCharts = echarts.init(document.querySelect
Qwe7
2022/06/16
3390
python制作雷达图
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点。
龙哥
2021/05/07
1.3K0
python制作雷达图
数据可视化|用雷达图进行对比分析
雷达图的背景一圈一圈地像雷达,用多边形来展现数据的大小,我认为比较适合用于有多种不同维度的情形,是发现差距的一种好工具。
朱小五
2020/07/02
1.3K0
数据可视化|用雷达图进行对比分析
python中画雷达图_如何在Excel中创建雷达图
参考链接: Python | 使用XlsxWriter模块在Excel工作表中绘制雷达图
用户7886150
2020/12/23
2.3K0
用好图表插件神器之先,先了解下最全的Excel图表的基本类型与选择
Excel 基本可以实现一维和二维图表的绘制,今天先总体介绍Excel的基本图表类型和图表选择的基本原则。
Excel催化剂
2021/08/19
2.1K0
用好图表插件神器之先,先了解下最全的Excel图表的基本类型与选择
雷达图生成算法
比如要制作如上的雷达特效。我们用虚幻引擎的shader编辑器来做,因为它对图形化hlsl语言的支持非常好,因为这个是纯二维的CG特效,我们使用后期处理(post process)材质来表现。首先进行阶级分析,这个雷达图(虽然不知道这种图案与现代雷达有什么关联)由3个部分组成,分别是:
Jean
2021/09/07
9440
使用Python绘制雷达图
import numpy as np import matplotlib.pyplot as plt #标签 labels = np.array(['3℃','5℃','6℃','3℃','1℃','3℃','3℃','2℃']) #数据个数 dataLenth = 8 #数据 data = np.array([3,5,6,3,1,3,3,2]) angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False) data = np.concatenate((data, [data[0]]))  angles = np.concatenate((angles, [angles[0]]))  fig = plt.figure() ax = fig.add_subplot(111, polar=True) ax.plot(angles, data, 'ro-', linewidth=2) ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei") ax.set_title("温度变化雷达图", va='bottom', fontproperties="SimHei") ax.grid(True) plt.show()
py3study
2020/01/08
1.3K0
使用Python绘制雷达图

相似问题

如何用极坐标绘制雷达图?

11

动画中固定的线极坐标(雷达)图-实际表达

11

利用单个数据生成雷达图

12

用php值创建雷达图

11

图形中数据点的图数

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文