Plot an ENA network: nodes and edges
ena.plot.network(
enaplot = NULL,
network = NULL,
node.positions = enaplot$enaset$rotation$nodes,
adjacency.key = NULL,
colors = c(pos = enaplot$palette[1], enaplot$palette[2]),
edge_type = "line",
show.all.nodes = T,
threshold = c(0),
thin.lines.in.front = T,
layers = c("nodes", "edges"),
thickness = c(min(abs(network)), max(abs(network))),
opacity = thickness,
saturation = thickness,
scale.range = c(ifelse(min(network) == 0, 0, 0.1), 1),
node.size = c(3, 10),
labels = NULL,
label.offset = "middle right",
label.font.size = enaplot$get("font.size"),
label.font.color = enaplot$get("font.color"),
label.font.family = enaplot$get("font.family"),
legend.name = NULL,
legend.include.edges = F,
scale.weights = F,
...
)
ENAplot
object to use for plotting
dataframe or matrix containing the edge weights for the network graph; typically comes from ENAset$line.weights
matrix containing the positiions of the nodes. Defaults to enaplot$enaset$node.positions
matrix containing the adjacency key for looking up the names and positions
A String or vector of colors for positive and negative line weights. E.g. red or c(pos= red, neg = blue), default: c(pos= red, neg = blue)
A String representing the type of line to draw, either "line", "dash", or "dot"
A Logical variable, default: true
A vector of numeric min/max values, default: c(0,Inf) plotting . Edge weights below the min value will not be displayed; edge weights above the max value will be shown at the max value.
A logical, default: true
ordering of layers, default: c("nodes", "edges")
A vector of numeric min/max values for thickness, default: c(min(abs(network)), max(abs(network)))
A vector of numeric min/max values for opacity, default: thickness
A vector of numeric min/max values for saturation, default: thickness
A vector of numeric min/max to scale from, default: c(0.1,1) or if min(network) is 0, c(0,1)
A lower and upper bound used for scaling the size of the nodes, default c(0, 20)
A character vector of node labels, default: code names
A character vector of representing the positional offset relative to the respective node. Defaults to "middle right" for all nodes. If a single values is provided, it is used for all positions, else the length of the
An integer which determines the font size for graph labels, default: enaplot$font.size
A character which determines the color of label font, default: enaplot$font.color
A character which determines font type, choices: Arial, Courier New, Times New Roman, default: enaplot$font.family
A character name used in the plot legend. Not included in legend when NULL (Default), if legend.include.edges is TRUE will always be "Nodes"
Logical value indicating if the edge names should be included in the plot legend. Forces legend.name to be "Nodes"
Logical indicating to scale the supplied network
Additional parameters
The ENAplot
provided to the function, with its plot updated to include the nodes and provided connecting lines.
lots a network graph, including nodes (taken from codes in the ENAplot) and the edges (provided in network)
data(RS.data)
codeNames = c('Data','Technical.Constraints','Performance.Parameters',
'Client.and.Consultant.Requests','Design.Reasoning','Collaboration');
accum = ena.accumulate.data(
units = RS.data[,c("UserName","Condition")],
conversation = RS.data[,c("Condition","GroupName")],
metadata = RS.data[,c("CONFIDENCE.Change","CONFIDENCE.Pre","CONFIDENCE.Post")],
codes = RS.data[,codeNames],
window.size.back = 4
)
set = ena.make.set(
enadata = accum,
rotation.by = ena.rotate.by.mean,
rotation.params = list(
accum$meta.data$Condition=="FirstGame",
accum$meta.data$Condition=="SecondGame"
)
)
plot = ena.plot(set)
### Subset rotated points and plot Condition 1 Group Mean
as.matrix(set$points$Condition$FirstGame)
#> MR1 SVD2 SVD3 SVD4 SVD5
#> [1,] -0.056054354 -0.008605342 -0.002057220 0.017117506 -0.0203390545
#> [2,] -0.086342146 0.001037475 0.041189098 0.009581292 0.0218257846
#> [3,] -0.287738174 -0.174169929 -0.041421698 0.056217164 0.0239272758
#> [4,] 0.024420908 -0.103194928 0.096641376 -0.012314776 -0.0006745635
#> [5,] -0.188438766 0.056262827 -0.047768406 0.383830896 -0.0363806633
#> [6,] -0.126092030 -0.130759463 -0.212558839 -0.125681709 0.0512785901
#> [7,] -0.289888189 -0.002927022 0.140070754 0.151983997 0.0313885290
#> [8,] -0.095113420 -0.171095254 0.116333000 -0.029705018 -0.0307697997
#> [9,] -0.078778008 -0.241402399 -0.086243251 0.073103528 -0.1104595345
#> [10,] -0.031637314 -0.080885967 -0.022172479 -0.090013939 -0.0052698757
#> [11,] -0.005792158 0.255963362 0.064764006 -0.096544323 -0.0340864744
#> [12,] -0.033157252 -0.004428193 -0.060324536 0.020110024 -0.0076613570
#> [13,] -0.045707804 -0.045938053 0.019112460 -0.032890108 0.0877277105
#> [14,] -0.210835345 -0.146089807 0.065982843 -0.023150102 -0.0748037814
#> [15,] -0.023089038 -0.129914011 0.115071931 0.027063686 -0.0011689788
#> [16,] -0.131481029 0.119449677 0.081580689 -0.056070583 -0.0983348835
#> [17,] -0.152712520 0.020832482 0.021940497 -0.074535892 -0.0597139160
#> [18,] -0.071251835 0.215270364 0.130413272 -0.065057713 -0.1040979421
#> [19,] 0.021839319 0.114224081 0.152473241 -0.026299413 -0.0583263509
#> [20,] -0.309228076 0.130713802 -0.067751916 0.049044923 0.1491375818
#> [21,] -0.100523852 0.232730878 -0.177822012 -0.011542405 0.1147132802
#> [22,] 0.009957384 0.061352461 0.012788398 -0.024841008 -0.0452206489
#> [23,] -0.093626205 -0.014042897 -0.077724151 0.042322679 0.1010558289
#> [24,] 0.225153276 -0.021650931 0.015335147 -0.053937243 0.0992517693
#> [25,] -0.057735437 -0.025849362 -0.286110111 -0.102257318 -0.0590119060
#> [26,] -0.111499312 0.093116147 0.008257909 -0.005534144 0.0660133800
#> SVD6 SVD7 SVD8 SVD9 SVD10
#> [1,] 0.026473339 -0.01418133 0.0446203078 0.004158459 0.001599785
#> [2,] 0.016909015 0.01903734 0.0219230429 0.021131058 0.005993553
#> [3,] 0.024446792 0.07086400 -0.0865961044 0.058080615 0.078922007
#> [4,] 0.032983949 0.01382008 0.0429484829 0.014347079 0.037697169
#> [5,] 0.066514754 0.02374807 -0.0335953997 -0.028085061 -0.038439286
#> [6,] 0.032647410 -0.03627855 0.0560217550 -0.010315327 -0.037461894
#> [7,] 0.057386995 -0.05371739 -0.0348714352 0.024212619 -0.072028391
#> [8,] 0.019414590 -0.04165053 -0.0535319360 0.031313127 -0.059308351
#> [9,] -0.054200971 -0.02120410 -0.0189808899 -0.034506525 -0.012688944
#> [10,] 0.073912309 0.01852309 -0.0220682097 0.015731392 0.021506544
#> [11,] 0.031886360 -0.06743132 -0.1461054941 -0.029742948 0.010559781
#> [12,] 0.076018187 -0.05614734 0.0470371016 -0.055985261 0.029970908
#> [13,] -0.056488056 0.04311472 -0.0143950164 -0.092245667 0.003529600
#> [14,] 0.001713129 -0.03943270 -0.0120372523 0.078821541 0.022180980
#> [15,] 0.002358982 -0.03724749 0.0603176369 -0.025647167 0.012739354
#> [16,] -0.037336256 0.02370408 0.0171656240 -0.001480756 0.001092940
#> [17,] -0.014694599 0.02529245 -0.0077706756 0.040244764 -0.008351668
#> [18,] 0.036408749 0.05216560 0.0596062852 -0.007566808 -0.010002211
#> [19,] -0.102146290 0.05399016 0.0277466193 0.021041801 -0.022146577
#> [20,] 0.091463229 0.04959516 0.0287856791 -0.002448404 0.016340298
#> [21,] -0.085731460 0.03300727 -0.0029974743 0.007837150 -0.049008784
#> [22,] -0.059318827 0.02550921 -0.0061038551 -0.050688122 0.017338949
#> [23,] -0.078379200 -0.04130277 0.0047171079 -0.045545964 0.028277576
#> [24,] -0.056151015 -0.02536253 0.0044716553 -0.022229562 -0.029548696
#> [25,] -0.048481636 -0.04540053 0.0006631165 0.068592962 -0.007967886
#> [26,] 0.002390519 0.02698535 0.0230293282 0.020975007 0.059203242
#> SVD11 SVD12 SVD13 SVD14 SVD15
#> [1,] -0.0333050931 0.0165531102 -0.028407376 -0.0207585395 -0.0053940834
#> [2,] -0.0170799780 0.0021253735 0.003675627 -0.0384961876 0.0192281844
#> [3,] -0.0030538098 0.0248114175 0.012251274 0.0119520417 0.0005867374
#> [4,] 0.0019388083 -0.0081469163 0.003851633 -0.0177917107 0.0339347502
#> [5,] 0.0197731980 -0.0247574647 0.035928355 0.0197203401 0.0077399055
#> [6,] -0.0106412043 -0.0088460398 0.029994762 0.0360981220 -0.0072604839
#> [7,] 0.0220803566 0.0079019261 -0.045897460 0.0008759494 0.0034387254
#> [8,] 0.0026321959 -0.0154785444 0.004122053 -0.0237043329 -0.0175786585
#> [9,] -0.0032025067 0.0389154118 -0.028690731 0.0097518202 0.0023686922
#> [10,] 0.0125678074 -0.0109990771 -0.034430729 -0.0296371494 -0.0050268196
#> [11,] -0.0467796141 0.0049980959 0.018937747 0.0018080087 0.0160082236
#> [12,] 0.0117279808 0.0003613296 -0.010760152 -0.0025512634 -0.0146651267
#> [13,] 0.0242405859 -0.0063406600 0.011004721 -0.0251377255 -0.0076106903
#> [14,] -0.0029113676 -0.0158476350 0.008696809 0.0274733083 -0.0294934257
#> [15,] 0.0208804789 -0.0159003367 0.010401085 0.0061143636 -0.0007946175
#> [16,] 0.0156366006 0.0181741955 -0.018578534 0.0050545803 -0.0095301942
#> [17,] 0.0181960061 -0.0167989228 0.013095506 -0.0242238520 0.0070807421
#> [18,] 0.0329114271 0.0200175050 0.002407689 0.0188802015 0.0167367876
#> [19,] -0.0101168118 -0.0001986431 0.015411400 -0.0013401098 -0.0013820590
#> [20,] -0.0325956909 0.0416778436 0.017225157 0.0413605789 -0.0149241355
#> [21,] -0.0029084046 -0.0264566957 -0.008872722 0.0136909042 -0.0057384467
#> [22,] 0.0001017664 -0.0003453221 0.017570113 -0.0197139186 -0.0122833820
#> [23,] -0.0092083091 -0.0002797472 0.007524841 -0.0115362527 0.0230667521
#> [24,] -0.0033734638 -0.0449990245 -0.022922844 0.0112421701 -0.0189097280
#> [25,] 0.0067597533 -0.0160706174 0.004087811 0.0192295118 0.0382657612
#> [26,] -0.0142707117 0.0359294379 -0.017626035 -0.0083608588 -0.0178634108
first.game.points = as.matrix(set$points$Condition$FirstGame)
plot = ena.plot.group(plot, first.game.points, labels = "FirstGame",
colors = "red", confidence.interval = "box")
### Subset rotated points and plot Condition 2 Group Mean
second.game.points = as.matrix(set$points$Condition$SecondGame)
plot = ena.plot.group(plot, second.game.points, labels = "SecondGame",
colors = "blue", confidence.interval = "box")
### get mean network plots
first.game.lineweights = as.matrix(set$line.weights$Condition$FirstGame)
first.game.mean = colMeans(first.game.lineweights)
second.game.lineweights = as.matrix(set$line.weights$Condition$SecondGame)
second.game.mean = colMeans(second.game.lineweights)
subtracted.network = first.game.mean - second.game.mean
plot = ena.plot.network(plot, network = subtracted.network)
print(plot)