在R中的circlize包中进行绘图

时间:2018-11-02 06:53:25

标签: r data-visualization chord-diagram circlize

我有不同城市之间的航空公司连通性数据。我想借助Circize包制作一个带有颜色控制的和弦图。我需要帮助

Place1<-c("Delhi","Hongkong","Manila","Delhi","Hongkong","Manila","Delhi","Hongkong","Manila")
Place2<-c("Delhi","Delhi","Delhi","Hongkong","Hongkong","Hongkong","Manila","Manila","Manila")
value<-c(8,21,29,41,23,16,14,8,9)
df1<-cbind(Place1,Place2,value)

数据是这样的

Place1     Place2     value
 [1,] "Delhi"    "Delhi"    "8"  
 [2,] "Hongkong" "Delhi"    "21" 
 [3,] "Manila"   "Delhi"    "29" 
 [4,] "Delhi"    "Hongkong" "41" 
 [5,] "Hongkong" "Hongkong" "23" 
 [6,] "Manila"   "Hongkong" "16" 
 [7,] "Delhi"    "Manila"   "14" 
 [8,] "Hongkong" "Manila"   "8"  
 [9,] "Manila"   "Manila"   "9"

1 个答案:

答案 0 :(得分:1)

我们可以尝试这样的事情:

# Here your data:
Place1<-c("Delhi","Hongkong","Manila","Delhi","Hongkong","Manila","Delhi","Hongkong","Manila")
Place2<-c("Delhi","Delhi","Delhi","Hongkong","Hongkong","Hongkong","Manila","Manila","Manila")
value<-c(8,21,29,41,23,16,14,8,9)
# df1<-cbind(Place1,Place2,value)    this is not useful, it's better to put them in a data.frame
df1 <-data.frame(Place1,Place2,value = as.numeric(value))

然后,我们可以操纵数据并绘制图。如this simple example中所述,数据应放在表中:您也有值,因此我们可以将它们与基本函数一起放置:

dat <- xtabs(value ~ Place1 + Place2, df1)

现在我们可以绘制数据了:

library(circlize)
chordDiagram(as.data.frame(dat), transparency = 0.5)

enter image description here

但是,您可以考虑使用some other ways来可视化这些数据。