Implements hammer edge bundling via kernel density estimation (KDEEB).
Usage
edge_bundle_hammer(
object,
xy,
bw = 0.05,
decay = 0.7,
npoints = 50,
iterations = 12,
grid = 256,
step = 0.6,
smooth = 1
)Arguments
- object
a graph object (igraph/network/tbl_graph)
- xy
coordinates of vertices
- bw
initial bandwidth (fraction of the layout extent)
- decay
bandwidth decay per iteration (0-1)
- npoints
number of points sampled per edge
- iterations
number of bundling iterations
- grid
resolution of the density grid
- step
advection step size (multiple of the bandwidth)
- smooth
number of smoothing passes per iteration
Details
Native re-implementation of the KDE-based bundling behind the
datashader "hammer" bundler, following Hurter, Ersoy and Telea (2012). Earlier
versions of this function wrapped datashader through reticulate; it now runs
entirely in C++ with no Python dependency. Edges are sampled into points, a
density field is estimated on a grid, points are advected up the density
gradient, and the bandwidth shrinks each iteration so bundles emerge along
density ridges.
see online for plotting tips
References
Hurter, Christophe, Ozan Ersoy, and Alexandru Telea. "Graph Bundling by Kernel Density Estimation." Computer Graphics Forum 31, no. 3 (2012): 865-874.
Examples
library(igraph)
g <- graph_from_edgelist(
matrix(c(1, 12, 2, 11, 3, 10, 4, 9, 5, 8, 6, 7), ncol = 2, byrow = TRUE), FALSE
)
xy <- cbind(c(rep(0, 6), rep(1, 6)), c(1:6, 1:6))
edge_bundle_hammer(g, xy)
#> x y index group
#> 1 0.000000000 1.000000 0.00000000 1
#> 2 -0.053184520 1.093478 0.02040816 1
#> 3 -0.093192053 1.193280 0.04081633 1
#> 4 -0.115136050 1.298550 0.06122449 1
#> 5 -0.121832340 1.405892 0.08163265 1
#> 6 -0.118035180 1.513377 0.10204082 1
#> 7 -0.103341888 1.619923 0.12244898 1
#> 8 -0.077893464 1.724432 0.14285714 1
#> 9 -0.046352471 1.827267 0.16326531 1
#> 10 -0.010018687 1.928502 0.18367347 1
#> 11 0.033984830 2.026640 0.20408163 1
#> 12 0.088465216 2.119374 0.22448980 1
#> 13 0.152069558 2.206119 0.24489796 1
#> 14 0.218964826 2.290350 0.26530612 1
#> 15 0.280966708 2.378217 0.28571429 1
#> 16 0.329281259 2.474271 0.30612245 1
#> 17 0.359268603 2.577537 0.32653061 1
#> 18 0.374997085 2.683933 0.34693878 1
#> 19 0.381924804 2.791274 0.36734694 1
#> 20 0.384717540 2.898805 0.38775510 1
#> 21 0.386981845 3.006348 0.40816327 1
#> 22 0.387151367 3.113914 0.42857143 1
#> 23 0.383631227 3.221423 0.44897959 1
#> 24 0.377338208 3.328806 0.46938776 1
#> 25 0.370659462 3.436166 0.48979592 1
#> 26 0.367139618 3.543675 0.51020408 1
#> 27 0.369305709 3.651219 0.53061224 1
#> 28 0.375569000 3.758604 0.55102041 1
#> 29 0.381593049 3.866003 0.57142857 1
#> 30 0.387056960 3.973431 0.59183673 1
#> 31 0.396045022 4.080623 0.61224490 1
#> 32 0.414138207 4.186656 0.63265306 1
#> 33 0.447413971 4.288934 0.65306122 1
#> 34 0.495329651 4.385235 0.67346939 1
#> 35 0.551267067 4.477115 0.69387755 1
#> 36 0.610211986 4.567093 0.71428571 1
#> 37 0.665777135 4.659193 0.73469388 1
#> 38 0.713874210 4.755406 0.75510204 1
#> 39 0.751336919 4.856211 0.77551020 1
#> 40 0.771681388 4.961803 0.79591837 1
#> 41 0.777514191 5.069209 0.81632653 1
#> 42 0.778216570 5.176773 0.83673469 1
#> 43 0.782277056 5.284256 0.85714286 1
#> 44 0.794516990 5.391116 0.87755102 1
#> 45 0.815108970 5.496688 0.89795918 1
#> 46 0.841374575 5.600998 0.91836735 1
#> 47 0.871631329 5.704214 0.93877551 1
#> 48 0.908980479 5.805081 0.95918367 1
#> 49 0.953494858 5.903005 0.97959184 1
#> 50 1.000000000 6.000000 1.00000000 1
#> 51 0.000000000 2.000000 0.00000000 2
#> 52 0.037319124 2.056932 0.02040816 2
#> 53 0.077469750 2.111905 0.04081633 2
#> 54 0.119469206 2.165481 0.06122449 2
#> 55 0.162182629 2.218489 0.08163265 2
#> 56 0.205629619 2.270897 0.10204082 2
#> 57 0.249712831 2.322765 0.12244898 2
#> 58 0.290293674 2.377410 0.14285714 2
#> 59 0.324439802 2.436296 0.16326531 2
#> 60 0.351057391 2.498918 0.18367347 2
#> 61 0.366857420 2.565115 0.20408163 2
#> 62 0.374237288 2.632787 0.22448980 2
#> 63 0.376498939 2.700824 0.24489796 2
#> 64 0.376482444 2.768899 0.26530612 2
#> 65 0.377781707 2.836962 0.28571429 2
#> 66 0.381071661 2.904958 0.30612245 2
#> 67 0.383995933 2.972971 0.32653061 2
#> 68 0.386222442 3.041011 0.34693878 2
#> 69 0.388889099 3.109034 0.36734694 2
#> 70 0.388690355 3.177110 0.38775510 2
#> 71 0.382359250 3.244888 0.40816327 2
#> 72 0.373404294 3.312372 0.42857143 2
#> 73 0.365929814 3.380035 0.44897959 2
#> 74 0.361230216 3.447948 0.46938776 2
#> 75 0.359215971 3.515994 0.48979592 2
#> 76 0.360048484 3.584064 0.51020408 2
#> 77 0.365916266 3.651886 0.53061224 2
#> 78 0.374823065 3.719377 0.55102041 2
#> 79 0.381163297 3.787155 0.57142857 2
#> 80 0.384686139 3.855140 0.59183673 2
#> 81 0.388653069 3.923100 0.61224490 2
#> 82 0.391996630 3.991094 0.63265306 2
#> 83 0.394147593 4.059136 0.65306122 2
#> 84 0.397958046 4.127099 0.67346939 2
#> 85 0.408809940 4.194290 0.69387755 2
#> 86 0.428691778 4.259383 0.71428571 2
#> 87 0.456576484 4.321463 0.73469388 2
#> 88 0.492293868 4.379413 0.75510204 2
#> 89 0.530284705 4.435901 0.77551020 2
#> 90 0.566776043 4.493370 0.79591837 2
#> 91 0.603629891 4.550607 0.81632653 2
#> 92 0.640892908 4.607576 0.83673469 2
#> 93 0.675768991 4.666035 0.85714286 2
#> 94 0.707578337 4.726222 0.87755102 2
#> 95 0.740982871 4.785524 0.89795918 2
#> 96 0.780953716 4.840595 0.91836735 2
#> 97 0.829106773 4.888676 0.93877551 2
#> 98 0.883508478 4.929583 0.95918367 2
#> 99 0.941028540 4.965990 0.97959184 2
#> 100 1.000000000 5.000000 1.00000000 2
#> 101 0.000000000 3.000000 0.00000000 3
#> 102 0.023170297 2.972312 0.02040816 3
#> 103 0.052334998 2.951040 0.04081633 3
#> 104 0.086394000 2.939039 0.06122449 3
#> 105 0.122335944 2.935412 0.08163265 3
#> 106 0.158228609 2.939361 0.10204082 3
#> 107 0.192345130 2.951170 0.12244898 3
#> 108 0.223348801 2.969711 0.14285714 3
#> 109 0.251478209 2.992370 0.16326531 3
#> 110 0.280054902 3.014468 0.18367347 3
#> 111 0.309491409 3.035408 0.20408163 3
#> 112 0.337868581 3.057760 0.22448980 3
#> 113 0.363913105 3.082771 0.24489796 3
#> 114 0.383112940 3.113246 0.26530612 3
#> 115 0.392137678 3.148184 0.28571429 3
#> 116 0.393001074 3.184282 0.30612245 3
#> 117 0.387396672 3.219967 0.32653061 3
#> 118 0.380092314 3.255344 0.34693878 3
#> 119 0.373659305 3.290891 0.36734694 3
#> 120 0.368028529 3.326572 0.38775510 3
#> 121 0.363414699 3.362400 0.40816327 3
#> 122 0.359911274 3.398354 0.42857143 3
#> 123 0.357494963 3.434396 0.44897959 3
#> 124 0.356373997 3.470504 0.46938776 3
#> 125 0.355485324 3.506617 0.48979592 3
#> 126 0.354176691 3.542715 0.51020408 3
#> 127 0.354615402 3.578833 0.53061224 3
#> 128 0.357706642 3.614825 0.55102041 3
#> 129 0.362807333 3.650586 0.57142857 3
#> 130 0.371706626 3.685597 0.59183673 3
#> 131 0.390775769 3.716043 0.61224490 3
#> 132 0.421820659 3.734241 0.63265306 3
#> 133 0.456643277 3.743827 0.65306122 3
#> 134 0.492193714 3.750223 0.67346939 3
#> 135 0.528110213 3.754095 0.69387755 3
#> 136 0.564001551 3.758081 0.71428571 3
#> 137 0.599368780 3.765404 0.73469388 3
#> 138 0.633901618 3.776007 0.75510204 3
#> 139 0.668109195 3.787618 0.77551020 3
#> 140 0.702354290 3.799117 0.79591837 3
#> 141 0.736255364 3.811565 0.81632653 3
#> 142 0.768385608 3.828039 0.83673469 3
#> 143 0.798476322 3.848028 0.85714286 3
#> 144 0.828377510 3.868298 0.87755102 3
#> 145 0.857941210 3.889045 0.89795918 3
#> 146 0.885189257 3.912762 0.91836735 3
#> 147 0.911808511 3.937164 0.93877551 3
#> 148 0.941476794 3.957773 0.95918367 3
#> 149 0.971724328 3.977517 0.97959184 3
#> 150 1.000000000 4.000000 1.00000000 3
#> 151 0.000000000 4.000000 0.00000000 4
#> 152 -0.006897151 3.963662 0.02040816 4
#> 153 -0.005395236 3.926733 0.04081633 4
#> 154 0.006263764 3.891632 0.06122449 4
#> 155 0.025613566 3.860115 0.08163265 4
#> 156 0.051089615 3.833306 0.10204082 4
#> 157 0.080403781 3.810764 0.12244898 4
#> 158 0.112856721 3.793036 0.14285714 4
#> 159 0.147537581 3.780183 0.16326531 4
#> 160 0.183497944 3.771531 0.18367347 4
#> 161 0.220029395 3.765747 0.20408163 4
#> 162 0.256836831 3.762123 0.22448980 4
#> 163 0.293778560 3.760350 0.24489796 4
#> 164 0.330556502 3.756480 0.26530612 4
#> 165 0.361229403 3.737720 0.28571429 4
#> 166 0.367967284 3.701758 0.30612245 4
#> 167 0.364172323 3.664973 0.32653061 4
#> 168 0.359478166 3.628292 0.34693878 4
#> 169 0.356513777 3.591434 0.36734694 4
#> 170 0.355486701 3.554465 0.38775510 4
#> 171 0.355655460 3.517479 0.40816327 4
#> 172 0.356366645 3.480499 0.42857143 4
#> 173 0.357639539 3.443537 0.44897959 4
#> 174 0.360134641 3.406636 0.46938776 4
#> 175 0.363529131 3.369807 0.48979592 4
#> 176 0.367906679 3.333085 0.51020408 4
#> 177 0.374108802 3.296630 0.53061224 4
#> 178 0.382528537 3.260627 0.55102041 4
#> 179 0.393766364 3.225411 0.57142857 4
#> 180 0.408422063 3.191482 0.59183673 4
#> 181 0.426357807 3.159145 0.61224490 4
#> 182 0.446261979 3.127973 0.63265306 4
#> 183 0.467439033 3.097654 0.65306122 4
#> 184 0.490274404 3.068563 0.67346939 4
#> 185 0.514754666 3.040846 0.69387755 4
#> 186 0.541253117 3.015056 0.71428571 4
#> 187 0.569614502 2.991326 0.73469388 4
#> 188 0.599490957 2.969547 0.75510204 4
#> 189 0.631342174 2.950775 0.77551020 4
#> 190 0.665031939 2.935530 0.79591837 4
#> 191 0.699915853 2.923255 0.81632653 4
#> 192 0.735602696 2.913551 0.83673469 4
#> 193 0.772021666 2.907100 0.85714286 4
#> 194 0.808857991 2.903857 0.87755102 4
#> 195 0.845815148 2.904408 0.89795918 4
#> 196 0.881785598 2.912931 0.91836735 4
#> 197 0.914964627 2.929250 0.93877551 4
#> 198 0.945756438 2.949728 0.95918367 4
#> 199 0.973415942 2.974284 0.97959184 4
#> 200 1.000000000 3.000000 1.00000000 4
#> 201 0.000000000 5.000000 0.00000000 5
#> 202 -0.007984773 4.929606 0.02040816 5
#> 203 -0.004616434 4.858860 0.04081633 5
#> 204 0.009879848 4.789543 0.06122449 5
#> 205 0.033872831 4.722902 0.08163265 5
#> 206 0.066240134 4.659888 0.10204082 5
#> 207 0.103883580 4.599878 0.12244898 5
#> 208 0.145311098 4.542411 0.14285714 5
#> 209 0.189196236 4.486796 0.16326531 5
#> 210 0.234499494 4.432329 0.18367347 5
#> 211 0.280096097 4.378109 0.20408163 5
#> 212 0.322711022 4.321514 0.22448980 5
#> 213 0.357896989 4.260025 0.24489796 5
#> 214 0.381482520 4.193241 0.26530612 5
#> 215 0.391395880 4.123117 0.28571429 5
#> 216 0.392367325 4.052281 0.30612245 5
#> 217 0.389769443 3.981484 0.32653061 5
#> 218 0.385879217 3.910745 0.34693878 5
#> 219 0.382319888 3.839990 0.36734694 5
#> 220 0.377457828 3.769314 0.38775510 5
#> 221 0.369084772 3.698965 0.40816327 5
#> 222 0.361161401 3.628569 0.42857143 5
#> 223 0.357443565 3.557821 0.44897959 5
#> 224 0.357255660 3.486977 0.46938776 5
#> 225 0.360203182 3.416195 0.48979592 5
#> 226 0.367089059 3.345686 0.51020408 5
#> 227 0.376537987 3.275474 0.53061224 5
#> 228 0.385620526 3.205214 0.55102041 5
#> 229 0.391532519 3.134620 0.57142857 5
#> 230 0.392036312 3.063779 0.59183673 5
#> 231 0.388298010 2.993032 0.61224490 5
#> 232 0.383933456 2.922322 0.63265306 5
#> 233 0.381096501 2.851534 0.65306122 5
#> 234 0.379769536 2.780701 0.67346939 5
#> 235 0.379192238 2.709859 0.69387755 5
#> 236 0.381477516 2.639054 0.71428571 5
#> 237 0.389883698 2.568709 0.73469388 5
#> 238 0.406384404 2.499817 0.75510204 5
#> 239 0.432478577 2.433966 0.77551020 5
#> 240 0.466199846 2.371665 0.79591837 5
#> 241 0.504461764 2.312043 0.81632653 5
#> 242 0.545743280 2.254469 0.83673469 5
#> 243 0.588529103 2.198003 0.85714286 5
#> 244 0.632271826 2.142275 0.87755102 5
#> 245 0.679000796 2.089030 0.89795918 5
#> 246 0.731761163 2.041751 0.91836735 5
#> 247 0.792366812 2.005103 0.93877551 5
#> 248 0.860074862 1.984446 0.95918367 5
#> 249 0.930874355 1.984487 0.97959184 5
#> 250 1.000000000 2.000000 1.00000000 5
#> 251 0.000000000 6.000000 0.00000000 6
#> 252 -0.048402731 5.902445 0.02040816 6
#> 253 -0.094318701 5.803696 0.04081633 6
#> 254 -0.131610852 5.701390 0.06122449 6
#> 255 -0.157471842 5.595622 0.08163265 6
#> 256 -0.171719957 5.487675 0.10204082 6
#> 257 -0.170869660 5.378802 0.12244898 6
#> 258 -0.154619585 5.271141 0.14285714 6
#> 259 -0.127845437 5.165592 0.16326531 6
#> 260 -0.094327255 5.061979 0.18367347 6
#> 261 -0.056181693 4.959977 0.20408163 6
#> 262 -0.015243173 4.859063 0.22448980 6
#> 263 0.029443609 4.759754 0.24489796 6
#> 264 0.081153860 4.663922 0.26530612 6
#> 265 0.139560919 4.572019 0.28571429 6
#> 266 0.202049526 4.482834 0.30612245 6
#> 267 0.265015531 4.393979 0.32653061 6
#> 268 0.321675081 4.300989 0.34693878 6
#> 269 0.362993090 4.200277 0.36734694 6
#> 270 0.383301251 4.093340 0.38775510 6
#> 271 0.387901127 3.984547 0.40816327 6
#> 272 0.385438488 3.875675 0.42857143 6
#> 273 0.378426132 3.767000 0.44897959 6
#> 274 0.369590565 3.658457 0.46938776 6
#> 275 0.364524081 3.549673 0.48979592 6
#> 276 0.366399337 3.440790 0.51020408 6
#> 277 0.373046494 3.332093 0.53061224 6
#> 278 0.380070692 3.223417 0.55102041 6
#> 279 0.384050529 3.114588 0.57142857 6
#> 280 0.383609582 3.005690 0.59183673 6
#> 281 0.380786979 2.896824 0.61224490 6
#> 282 0.379564545 2.787929 0.63265306 6
#> 283 0.384105527 2.679129 0.65306122 6
#> 284 0.400937439 2.571572 0.67346939 6
#> 285 0.433327540 2.467659 0.69387755 6
#> 286 0.479991514 2.369309 0.71428571 6
#> 287 0.537272091 2.276710 0.73469388 6
#> 288 0.598804765 2.186860 0.75510204 6
#> 289 0.655995927 2.094188 0.77551020 6
#> 290 0.699352466 1.994341 0.79591837 6
#> 291 0.722977614 1.888112 0.81632653 6
#> 292 0.729962267 1.779473 0.83673469 6
#> 293 0.729476994 1.670578 0.85714286 6
#> 294 0.729407282 1.561675 0.87755102 6
#> 295 0.735796826 1.452967 0.89795918 6
#> 296 0.753928491 1.345606 0.91836735 6
#> 297 0.787628646 1.242086 0.93877551 6
#> 298 0.840531997 1.146951 0.95918367 6
#> 299 0.913547092 1.066211 0.97959184 6
#> 300 1.000000000 1.000000 1.00000000 6
