首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中两端重叠的chordDiagram()

R中两端重叠的chordDiagram()
EN

Stack Overflow用户
提问于 2022-03-15 16:39:40
回答 2查看 235关注 0票数 1

我试图使用R中的chordDiagram()包中的circlize函数在R中生成一个Chord的修改版本。

假设我们有一个玩具示例(关于包的文档):

代码语言:javascript
复制
require(circlize)
df = expand.grid(letters[1:3], LETTERS[1:4])
df$value = 1
df$value2 = 3 
chordDiagram(df[, 1:3])

输出将非常简单:

现在,问题是:假设我需要使两个“结束”重叠来表示一个交点,例如,从b->A到从a->A的带状,以便它们在同一个扇区中“合并”彼此(如下图)。

这有可能吗?我没有在文档中找到任何示例,也没有能够执行这个任务--调整选项。

希望我说得很清楚。谢谢你的任何尝试。

EN

回答 2

Stack Overflow用户

发布于 2022-03-16 00:19:47

如果我正确理解你的问题,这是可能的。这是circlize的一个例子,我无耻地复制了这个例子来演示我的意思。

代码语言:javascript
复制
library(circlize)

routes = data.frame(Origin = c("GMP","CTS", "MEL","HND","BOM","SGN","PEK","TPE",
                               "OKA","SUB","DPS","JED","ITM","PEK","CAN","CUN",
                               "PEK","BNE","CGK","SHA"),
                    Destination = c("CJU","HND","SYD","FUK","DEL","HAN","SHA",    
                                    "HKG","HND","CGK","CGK","RUH","HND","CTU",
                                    "PEK","MEX","SZX","SYD","SIN","CAN"),
                    Passengers = c(14L,10L,9L,9L,7L,7L,7L,6L,6L,6L,6L,6L,
                                   5L,5L,5L,5L,5L,5L,5L,5L)
         )
  
chordDiagram(routes, annotationTrack = c("name", "grid"))

票数 0
EN

Stack Overflow用户

发布于 2022-03-24 18:32:04

如果我正确地理解了你,你想在图表中做一些重叠的部分。例如,S3 -> E2S2 -> E2。创建一个具有格式的矩阵,以便在图表中获得重叠路径。我将用下面的代码给出一个示例:

首先,创建一个具有不同值的S和E之间连接的矩阵:

代码语言:javascript
复制
library(circlize)
set.seed(999)
mat = matrix(sample(18, 18), 3, 6) 
rownames(mat) = paste0("S", 1:3)
colnames(mat) = paste0("E", 1:6)
mat

   E1 E2 E3 E4 E5 E6
S1  4 14 13 17  5  2
S2  7  1  6  8 12 15
S3  9 10  3 16 11 18

接下来,创建一个dataframe,它具有从字符到具有值的另一个字符的列格式,以检查哪些模式更容易实现:

代码语言:javascript
复制
df = data.frame(from = rep(rownames(mat), times = ncol(mat)),
                to = rep(colnames(mat), each = nrow(mat)),
                value = as.vector(mat),
                stringsAsFactors = FALSE)

   from to value
1    S1 E1     4
2    S2 E1     7
3    S3 E1     9
4    S1 E2    14
5    S2 E2     1
6    S3 E2    10
7    S1 E3    13
8    S2 E3     6
9    S3 E3     3
10   S1 E4    17
11   S2 E4     8
12   S3 E4    16
13   S1 E5     5
14   S2 E5    12
15   S3 E5    11
16   S1 E6     2
17   S2 E6    15
18   S3 E6    18

使用mat绘制输出

代码语言:javascript
复制
chordDiagram(mat)

如您所见,S3 -> E2S2 -> E2的路径有一些重叠。

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

https://stackoverflow.com/questions/71485852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档