library(tidyverse)
library(viridis)
library(patchwork)
library(hrbrthemes)
library(circlize)
library(networkD3)
library(plotly)
library(dplyr)
data <- read.csv("your_data.csv")
data<- aggregate(count ~ section + cited_section, data = data, sum)
Sankey With networkD3
data_long <- data #keep original data
colnames(data_long) <- c("source", "target", "value")
data_long$target <- paste(data_long$target, " ", sep="")
nodes <- data.frame(name=c(as.character(data_long$source), as.character(data_long$target)) %>% unique())
# With networkD3, connection must be provided using id, not using real name like in the links dataframe.. So we need to reformat it.
data_long$IDsource=match(data_long$source, nodes$name)-1
data_long$IDtarget=match(data_long$target, nodes$name)-1
# prepare colour scale
MyColours ='d3.scaleOrdinal() .range(["#FFC0CB", "#FFD700", "#FFA07A", "#DDA0DD", "#B0E0E6", "#98FB98","#FF7F7F","#0000FF"])'
# Make the Network
sankeyNetwork(Links = data_long, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=FALSE, colourScale=MyColours, nodeWidth=40, fontSize=13, nodePadding=20)
Chord Diagram with chorddiag
devtools::install_github("mattflor/chorddiag")
library(chorddiag)
library(dplyr)
library(tidyverse)
data <- read.csv("your_data.csv")
# Aggregate and sum the 'count' column by 'section' and 'cited_section'
result <- aggregate(count ~ section + cited_section, data = data, sum)
transformed_data <- result %>%
pivot_wider(
names_from = section,
values_from = count,
values_fill = 0 # Replace missing values with 0
)
transformed_data$cited_section <- NULL
your_matrix <- as.matrix(transformed_data, colnames = TRUE)
#colnames(your_matrix)
#rownames(your_matrix)
rownames(your_matrix) <- c("A","B","C","D","E","F","G","H")
groupColors <- c("#FFC0CB", "#FFD700", "#FFA07A", "#DDA0DD", "#B0E0E6", "#98FB98","#FF7F7F","#0000FF")
chorddiag(your_matrix, groupColors = groupColors, groupnamePadding = 50,groupnameFontsize = 18,showZeroTooltips=FALSE)