Skip to content

Instantly share code, notes, and snippets.

@hnakamur
Last active May 27, 2019 18:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hnakamur/b819cf1b73e11675dc47ed4d39e62859 to your computer and use it in GitHub Desktop.
Save hnakamur/b819cf1b73e11675dc47ed4d39e62859 to your computer and use it in GitHub Desktop.
cytoscape network weathermap experiment
<!DOCTYPE>
<html>
<head>
<title>network weathermap demo using cytoscape.js</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
<script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>
<script src="https://unpkg.com/cytoscape-automove@1.10.1/cytoscape-automove.js"></script>
<style>
#cy {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 1;
}
</style>
</head>
<body>
<div id="cy"></div>
<script>
// document.addEventListener('DOMContentLoaded', function () {
var cy = cytoscape({
container: document.getElementById('cy'), // container to render in
elements: { // list of graph elements to start with
nodes: [
{ data: { id: 'a', label: 'コアルータ\n(core router)' }, position: { x: 50, y: 250 } },
{ data: { id: 'a2' }, classes: 'empty-joint' },
{ data: { id: 'b', label: 'ルータ\n(router)' }, position: { x: 550, y: 250 } },
{ data: { id: 'b2' }, classes: 'empty-joint' },
{ data: { id: 'c', label: 'スイッチ\n(switch)' }, position: { x: 300, y: 50 } },
{ data: { id: 'c2' }, classes: 'empty-joint' }
],
edges: [
{ data: { id: 'ab', source: 'a', target: 'a2', label: '139.14K', width: '13px', lineColor: '#B3EAD9' } },
{ data: { id: 'ab2', source: 'b', target: 'a2', label: '200.13K', width: '20px', lineColor: '#D1EAF8' } },
{ data: { id: 'bc', source: 'b', target: 'b2', label: '139.14K', width: '13px', lineColor: '#B3EAD9' } },
{ data: { id: 'bc2', source: 'c', target: 'b2', label: '200.13K', width: '20px', lineColor: '#D1EAF8' } },
{ data: { id: 'ca', source: 'c', target: 'c2', label: '139.14K', width: '13px', lineColor: '#B3EAD9' } },
{ data: { id: 'ca2', source: 'a', target: 'c2', label: '200.13K', width: '20px', lineColor: '#D1EAF8' } }
]
},
style: [ // the stylesheet for the graph
{
selector: 'node',
style: {
'background-color': '#666',
'content': 'data(id)'
}
},
{
selector: '.empty-joint',
style: {
'content': '',
'background-opacity': 0,
'width': '1px',
'height': '1px',
'border-width': 0
}
},
{
selector: 'edge',
style: {
'curve-style': 'bezier',
'width': 'data(width)',
'line-color': 'data(lineColor)',
'target-arrow-color': 'data(lineColor)',
'target-arrow-shape': 'triangle'
}
},
{
selector: 'node[label]',
style: {
'text-wrap': 'wrap',
'label': 'data(label)'
}
},
{
selector: 'edge[label]',
style: {
'label': 'data(label)',
'text-border-opacity': 1,
'text-border-color': '#000',
'text-border-width': '1px',
'text-background-padding': '4px',
'text-background-opacity': 1,
'text-background-color': '#FFF',
'text-background-shape': 'rectangle'
}
},
{
selector: '#a',
style: {
'shape': 'rectangle',
'background-opacity': 0,
'width': '72px',
'height': '69px',
'background-fit': 'cover cover',
'background-image': 'data:image/gif;base64,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'
}
},
{
selector: '#a[label]',
style: {
'text-valign': 'bottom'
}
},
{
selector: '#b',
style: {
'shape': 'rectangle',
'background-opacity': 0,
'width': '60px',
'height': '35px',
'background-fit': 'cover cover',
'background-image': 'data:image/gif;base64,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'
}
},
{
selector: '#b[label]',
style: {
'text-valign': 'bottom'
}
},
{
selector: '#c',
style: {
'shape': 'rectangle',
'background-opacity': 0,
'width': '78px',
'height': '33px',
'background-fit': 'cover cover',
'background-image': 'data:image/gif;base64,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'
}
}
],
layout: {
name: 'preset'
}
});
cy.automove({
nodesMatching: cy.$('.empty-joint'),
reposition: 'mean',
meanOnSelfPosition: function( node ){ return false; }
});
// });
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment