Mouseover nodes to get details and stop the animation. An example of d3.layout.orbit that demonstrates different revolution speeds, different orbital scales and animation available in the layout.
-
-
Save estasney/8ea7b2ffd5e6a975d50f56a571fccf82 to your computer and use it in GitHub Desktop.
Orbit Layout 4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "name": "cisco", | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "play" | |
| }, | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "name": "play" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "difference" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "talent" | |
| }, | |
| { | |
| "name": "community" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "closely" | |
| }, | |
| { | |
| "name": "ability" | |
| } | |
| ], | |
| "name": "work" | |
| }, | |
| { | |
| "name": "cut" | |
| }, | |
| { | |
| "name": "use" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "organization" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "role" | |
| }, | |
| { | |
| "name": "cycle" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "strongly" | |
| }, | |
| { | |
| "name": "environment" | |
| }, | |
| { | |
| "name": "training" | |
| }, | |
| { | |
| "name": "account" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "name": "level" | |
| }, | |
| { | |
| "name": "engineering" | |
| }, | |
| { | |
| "name": "coaching" | |
| }, | |
| { | |
| "name": "tool" | |
| } | |
| ], | |
| "name": "support" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "industry" | |
| }, | |
| { | |
| "name": "project" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "high" | |
| }, | |
| { | |
| "name": "development" | |
| }, | |
| { | |
| "name": "time" | |
| }, | |
| { | |
| "name": "strategy" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "comfortable" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "name": "adapt" | |
| }, | |
| { | |
| "name": "responsibility" | |
| } | |
| ], | |
| "name": "lead" | |
| } | |
| ], | |
| "name": "sale" | |
| } | |
| ], | |
| "name": "sale" | |
| } | |
| ], | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "largest" | |
| }, | |
| { | |
| "name": "lead" | |
| }, | |
| { | |
| "name": "tool" | |
| }, | |
| { | |
| "name": "single" | |
| } | |
| ], | |
| "name": "edge" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "connection" | |
| }, | |
| { | |
| "name": "bold" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "name": "risk" | |
| }, | |
| { | |
| "name": "shape" | |
| }, | |
| { | |
| "name": "better" | |
| }, | |
| { | |
| "name": "billion" | |
| }, | |
| { | |
| "name": "connected" | |
| }, | |
| { | |
| "name": "estimated" | |
| }, | |
| { | |
| "name": "right" | |
| } | |
| ], | |
| "name": "thing" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "industry" | |
| }, | |
| { | |
| "name": "market" | |
| }, | |
| { | |
| "name": "account" | |
| }, | |
| { | |
| "name": "addition" | |
| }, | |
| { | |
| "name": "segment" | |
| }, | |
| { | |
| "name": "enterprise" | |
| }, | |
| { | |
| "name": "platform" | |
| }, | |
| { | |
| "name": "right" | |
| }, | |
| { | |
| "name": "video" | |
| }, | |
| { | |
| "name": "distribution" | |
| }, | |
| { | |
| "name": "secondary" | |
| }, | |
| { | |
| "name": "group" | |
| } | |
| ], | |
| "name": "provider" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "technology" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "shape" | |
| }, | |
| { | |
| "name": "smart" | |
| }, | |
| { | |
| "name": "risk" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "difference" | |
| }, | |
| { | |
| "name": "city" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "entertainment" | |
| }, | |
| { | |
| "name": "retail" | |
| }, | |
| { | |
| "name": "healthcare" | |
| }, | |
| { | |
| "name": "education" | |
| }, | |
| { | |
| "name": "network" | |
| }, | |
| { | |
| "name": "internet" | |
| }, | |
| { | |
| "name": "deliver" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "process" | |
| }, | |
| { | |
| "name": "datum" | |
| }, | |
| { | |
| "name": "come" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "thing" | |
| }, | |
| { | |
| "name": "edge" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "play" | |
| }, | |
| { | |
| "name": "right" | |
| }, | |
| { | |
| "name": "culture" | |
| } | |
| ], | |
| "name": "people" | |
| } | |
| ], | |
| "name": "people" | |
| } | |
| ], | |
| "name": "people" | |
| }, | |
| { | |
| "name": "range" | |
| }, | |
| { | |
| "name": "innovative" | |
| }, | |
| { | |
| "name": "snort" | |
| }, | |
| { | |
| "name": "integrity" | |
| } | |
| ], | |
| "name": "power" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "entertainment" | |
| } | |
| ], | |
| "name": "technology" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "role" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "effectively" | |
| }, | |
| { | |
| "name": "intent" | |
| }, | |
| { | |
| "name": "deploy" | |
| }, | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "value" | |
| }, | |
| { | |
| "name": "leadership" | |
| }, | |
| { | |
| "name": "application" | |
| }, | |
| { | |
| "name": "wireless" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "video" | |
| } | |
| ], | |
| "name": "member" | |
| }, | |
| { | |
| "name": "difference" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "manager" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "plan" | |
| }, | |
| { | |
| "name": "executive" | |
| }, | |
| { | |
| "name": "strategic" | |
| }, | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "assign" | |
| }, | |
| { | |
| "name": "large" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "identify" | |
| }, | |
| { | |
| "name": "territory" | |
| } | |
| ], | |
| "name": "account" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "account" | |
| }, | |
| { | |
| "name": "channel" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "leader" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "ecosystem" | |
| }, | |
| { | |
| "name": "strategic" | |
| }, | |
| { | |
| "name": "relationship" | |
| }, | |
| { | |
| "name": "internal" | |
| }, | |
| { | |
| "name": "strategy" | |
| } | |
| ], | |
| "name": "partner" | |
| } | |
| ], | |
| "name": "partner" | |
| } | |
| ], | |
| "name": "partner" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "skill" | |
| }, | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "name": "role" | |
| } | |
| ], | |
| "name": "technical" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "lead" | |
| } | |
| ], | |
| "name": "team" | |
| } | |
| ], | |
| "name": "team" | |
| }, | |
| { | |
| "name": "security" | |
| }, | |
| { | |
| "name": "collaboration" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "faster" | |
| }, | |
| { | |
| "name": "software" | |
| }, | |
| { | |
| "name": "development" | |
| }, | |
| { | |
| "name": "increasingly" | |
| }, | |
| { | |
| "name": "sophisticated" | |
| }, | |
| { | |
| "name": "growth" | |
| }, | |
| { | |
| "name": "motion" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "opportunity" | |
| }, | |
| { | |
| "name": "need" | |
| } | |
| ], | |
| "name": "drive" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "role" | |
| }, | |
| { | |
| "name": "define" | |
| }, | |
| { | |
| "name": "leader" | |
| }, | |
| { | |
| "name": "class" | |
| }, | |
| { | |
| "name": "advance" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "trust" | |
| }, | |
| { | |
| "name": "advisor" | |
| }, | |
| { | |
| "name": "architecture" | |
| }, | |
| { | |
| "name": "switching" | |
| }, | |
| { | |
| "name": "software" | |
| } | |
| ], | |
| "name": "architect" | |
| }, | |
| { | |
| "name": "technical" | |
| } | |
| ], | |
| "name": "solution" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "datacenter" | |
| }, | |
| { | |
| "name": "functional" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "collaboratively" | |
| }, | |
| { | |
| "name": "effectively" | |
| }, | |
| { | |
| "name": "specification" | |
| }, | |
| { | |
| "name": "program" | |
| }, | |
| { | |
| "name": "communicate" | |
| }, | |
| { | |
| "name": "look" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "networking" | |
| }, | |
| { | |
| "name": "testing" | |
| } | |
| ], | |
| "name": "unit" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "thing" | |
| }, | |
| { | |
| "name": "center" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "connection" | |
| }, | |
| { | |
| "name": "bold" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "name": "afraid" | |
| }, | |
| { | |
| "name": "play" | |
| }, | |
| { | |
| "name": "connection" | |
| }, | |
| { | |
| "name": "better" | |
| }, | |
| { | |
| "name": "personality" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "class" | |
| }, | |
| { | |
| "name": "real" | |
| }, | |
| { | |
| "name": "build" | |
| } | |
| ], | |
| "name": "world" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "software" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "application" | |
| }, | |
| { | |
| "name": "base" | |
| }, | |
| { | |
| "name": "model" | |
| }, | |
| { | |
| "name": "platform" | |
| }, | |
| { | |
| "name": "help" | |
| }, | |
| { | |
| "name": "virtualization" | |
| }, | |
| { | |
| "name": "mobile" | |
| }, | |
| { | |
| "name": "public" | |
| }, | |
| { | |
| "name": "computing" | |
| }, | |
| { | |
| "name": "saa" | |
| } | |
| ], | |
| "name": "cloud" | |
| }, | |
| { | |
| "name": "analytic" | |
| }, | |
| { | |
| "name": "network" | |
| }, | |
| { | |
| "name": "develop" | |
| } | |
| ], | |
| "name": "datum" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "best" | |
| }, | |
| { | |
| "name": "relationship" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "relationship" | |
| }, | |
| { | |
| "name": "colleague" | |
| }, | |
| { | |
| "name": "commercial" | |
| }, | |
| { | |
| "name": "culture" | |
| }, | |
| { | |
| "name": "build" | |
| }, | |
| { | |
| "name": "focused" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "ecosystem" | |
| }, | |
| { | |
| "name": "concept" | |
| }, | |
| { | |
| "name": "simple" | |
| }, | |
| { | |
| "name": "complex" | |
| }, | |
| { | |
| "name": "term" | |
| } | |
| ], | |
| "name": "incredible" | |
| }, | |
| { | |
| "name": "colleague" | |
| }, | |
| { | |
| "name": "bike" | |
| }, | |
| { | |
| "name": "engage" | |
| }, | |
| { | |
| "name": "ferry" | |
| }, | |
| { | |
| "name": "muni" | |
| }, | |
| { | |
| "name": "station" | |
| }, | |
| { | |
| "name": "practice" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "document" | |
| } | |
| ], | |
| "name": "share" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "scale" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "prove" | |
| }, | |
| { | |
| "name": "scale" | |
| }, | |
| { | |
| "name": "trust" | |
| }, | |
| { | |
| "name": "demonstrate" | |
| }, | |
| { | |
| "name": "virtual" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "include" | |
| }, | |
| { | |
| "name": "platform" | |
| }, | |
| { | |
| "name": "better" | |
| }, | |
| { | |
| "name": "metric" | |
| }, | |
| { | |
| "name": "manager" | |
| }, | |
| { | |
| "name": "year" | |
| } | |
| ], | |
| "name": "success" | |
| }, | |
| { | |
| "name": "trust" | |
| }, | |
| { | |
| "name": "prove" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "practice" | |
| }, | |
| { | |
| "name": "account" | |
| }, | |
| { | |
| "name": "maximize" | |
| }, | |
| { | |
| "name": "revenue" | |
| }, | |
| { | |
| "name": "earn" | |
| }, | |
| { | |
| "name": "recognition" | |
| }, | |
| { | |
| "name": "enterprise" | |
| } | |
| ], | |
| "name": "global" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "personality" | |
| }, | |
| { | |
| "name": "afraid" | |
| }, | |
| { | |
| "name": "talent" | |
| }, | |
| { | |
| "name": "style" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "hospital" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "name": "handheld" | |
| }, | |
| { | |
| "name": "car" | |
| }, | |
| { | |
| "name": "mixed" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "complex" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "cloud" | |
| }, | |
| { | |
| "name": "protocol" | |
| }, | |
| { | |
| "name": "enterprise" | |
| }, | |
| { | |
| "name": "deliver" | |
| }, | |
| { | |
| "name": "understanding" | |
| }, | |
| { | |
| "name": "center" | |
| }, | |
| { | |
| "name": "product" | |
| } | |
| ], | |
| "name": "network" | |
| }, | |
| { | |
| "name": "complex" | |
| } | |
| ], | |
| "name": "unique" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "success" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "team" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "technology" | |
| }, | |
| { | |
| "name": "accelerate" | |
| }, | |
| { | |
| "name": "power" | |
| }, | |
| { | |
| "name": "entertainment" | |
| }, | |
| { | |
| "name": "retail" | |
| }, | |
| { | |
| "name": "drive" | |
| }, | |
| { | |
| "name": "engage" | |
| }, | |
| { | |
| "name": "share" | |
| }, | |
| { | |
| "name": "achieve" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "financial" | |
| } | |
| ], | |
| "name": "result" | |
| }, | |
| { | |
| "name": "technology" | |
| }, | |
| { | |
| "name": "accelerate" | |
| }, | |
| { | |
| "name": "performance" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "team" | |
| }, | |
| { | |
| "name": "power" | |
| }, | |
| { | |
| "name": "unit" | |
| }, | |
| { | |
| "name": "drive" | |
| }, | |
| { | |
| "name": "technical" | |
| } | |
| ], | |
| "name": "business" | |
| } | |
| ], | |
| "name": "business" | |
| } | |
| ], | |
| "name": "business" | |
| }, | |
| { | |
| "name": "solution" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "service" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "build" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "closely" | |
| }, | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "level" | |
| }, | |
| { | |
| "name": "maintain" | |
| }, | |
| { | |
| "name": "executive" | |
| }, | |
| { | |
| "name": "colleague" | |
| }, | |
| { | |
| "name": "leverage" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "ability" | |
| }, | |
| { | |
| "name": "positive" | |
| } | |
| ], | |
| "name": "relationship" | |
| } | |
| ], | |
| "name": "customer" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "business" | |
| }, | |
| { | |
| "name": "provider" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "engineering" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "name": "build" | |
| }, | |
| { | |
| "name": "line" | |
| }, | |
| { | |
| "name": "suite" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "development" | |
| }, | |
| { | |
| "name": "integrate" | |
| }, | |
| { | |
| "name": "requirement" | |
| }, | |
| { | |
| "name": "manager" | |
| } | |
| ], | |
| "name": "product" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "protect" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "adapt" | |
| }, | |
| { | |
| "name": "relationship" | |
| }, | |
| { | |
| "name": "networking" | |
| }, | |
| { | |
| "name": "today" | |
| }, | |
| { | |
| "name": "expand" | |
| }, | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "connectivity" | |
| }, | |
| { | |
| "name": "activity" | |
| }, | |
| { | |
| "name": "innovation" | |
| }, | |
| { | |
| "name": "involve" | |
| } | |
| ], | |
| "name": "building" | |
| }, | |
| { | |
| "name": "accelerate" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "ensure" | |
| }, | |
| { | |
| "name": "project" | |
| }, | |
| { | |
| "name": "include" | |
| }, | |
| { | |
| "name": "focus" | |
| }, | |
| { | |
| "name": "model" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "leadership" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "continuous" | |
| }, | |
| { | |
| "name": "responsible" | |
| }, | |
| { | |
| "name": "proper" | |
| } | |
| ], | |
| "name": "delivery" | |
| } | |
| ], | |
| "name": "delivery" | |
| } | |
| ], | |
| "name": "delivery" | |
| }, | |
| { | |
| "name": "team" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "advance" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "development" | |
| }, | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "engineering" | |
| }, | |
| { | |
| "name": "sophisticated" | |
| }, | |
| { | |
| "name": "increasingly" | |
| }, | |
| { | |
| "name": "faster" | |
| }, | |
| { | |
| "name": "include" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "name": "feature" | |
| }, | |
| { | |
| "name": "hardware" | |
| }, | |
| { | |
| "name": "design" | |
| } | |
| ], | |
| "name": "software" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "adapt" | |
| }, | |
| { | |
| "name": "veteran" | |
| }, | |
| { | |
| "name": "status" | |
| }, | |
| { | |
| "name": "disability" | |
| }, | |
| { | |
| "name": "networking" | |
| }, | |
| { | |
| "name": "legally" | |
| }, | |
| { | |
| "name": "origin" | |
| }, | |
| { | |
| "name": "launch" | |
| }, | |
| { | |
| "name": "basis" | |
| }, | |
| { | |
| "name": "national" | |
| }, | |
| { | |
| "name": "unlawful" | |
| } | |
| ], | |
| "name": "protect" | |
| } | |
| ], | |
| "name": "service" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "business" | |
| }, | |
| { | |
| "name": "solution" | |
| }, | |
| { | |
| "name": "team" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "people" | |
| }, | |
| { | |
| "name": "process" | |
| }, | |
| { | |
| "name": "datum" | |
| }, | |
| { | |
| "name": "come" | |
| }, | |
| { | |
| "name": "thing" | |
| }, | |
| { | |
| "name": "edge" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "floor" | |
| }, | |
| { | |
| "name": "share" | |
| }, | |
| { | |
| "name": "unconnected" | |
| }, | |
| { | |
| "name": "incredible" | |
| } | |
| ], | |
| "name": "connect" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "network" | |
| }, | |
| { | |
| "name": "technology" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "cloud" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "development" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "software" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "require" | |
| }, | |
| { | |
| "name": "design" | |
| }, | |
| { | |
| "name": "application" | |
| }, | |
| { | |
| "name": "minimum" | |
| }, | |
| { | |
| "name": "equivalent" | |
| } | |
| ], | |
| "name": "experience" | |
| } | |
| ], | |
| "name": "experience" | |
| } | |
| ], | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "goal" | |
| }, | |
| { | |
| "name": "internal" | |
| }, | |
| { | |
| "name": "portfolio" | |
| }, | |
| { | |
| "name": "group" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "engineer" | |
| }, | |
| { | |
| "name": "center" | |
| }, | |
| { | |
| "name": "entrepreneurial" | |
| } | |
| ], | |
| "name": "collaboration" | |
| }, | |
| { | |
| "name": "cloud" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "datum" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "level" | |
| }, | |
| { | |
| "name": "partner" | |
| }, | |
| { | |
| "name": "global" | |
| }, | |
| { | |
| "name": "success" | |
| }, | |
| { | |
| "name": "virtual" | |
| }, | |
| { | |
| "name": "gsso" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "enterprise" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "engineering" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "develop" | |
| } | |
| ], | |
| "name": "organization" | |
| }, | |
| { | |
| "name": "global" | |
| }, | |
| { | |
| "name": "position" | |
| } | |
| ], | |
| "name": "security" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "empower" | |
| }, | |
| { | |
| "name": "world" | |
| }, | |
| { | |
| "name": "culture" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "colorful" | |
| }, | |
| { | |
| "name": "hair" | |
| }, | |
| { | |
| "name": "care" | |
| }, | |
| { | |
| "name": "local" | |
| }, | |
| { | |
| "name": "tattoo" | |
| }, | |
| { | |
| "name": "encourage" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "enjoy" | |
| }, | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "name": "sell" | |
| }, | |
| { | |
| "name": "global" | |
| }, | |
| { | |
| "name": "assign" | |
| } | |
| ], | |
| "name": "community" | |
| }, | |
| { | |
| "name": "strive" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "engine" | |
| }, | |
| { | |
| "name": "diverse" | |
| }, | |
| { | |
| "name": "strategy" | |
| }, | |
| { | |
| "name": "attract" | |
| }, | |
| { | |
| "name": "software" | |
| }, | |
| { | |
| "name": "group" | |
| }, | |
| { | |
| "name": "unrivaled" | |
| }, | |
| { | |
| "name": "switch" | |
| }, | |
| { | |
| "name": "develop" | |
| }, | |
| { | |
| "name": "career" | |
| }, | |
| { | |
| "name": "community" | |
| }, | |
| { | |
| "name": "beacon" | |
| } | |
| ], | |
| "name": "talent" | |
| }, | |
| { | |
| "name": "colorful" | |
| }, | |
| { | |
| "name": "hair" | |
| }, | |
| { | |
| "name": "unique" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "career" | |
| } | |
| ], | |
| "name": "difference" | |
| }, | |
| { | |
| "name": "empower" | |
| }, | |
| { | |
| "name": "bring" | |
| }, | |
| { | |
| "name": "culture" | |
| }, | |
| { | |
| "name": "unique" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "device" | |
| }, | |
| { | |
| "name": "everyday" | |
| }, | |
| { | |
| "name": "city" | |
| }, | |
| { | |
| "name": "smart" | |
| }, | |
| { | |
| "name": "commuter" | |
| }, | |
| { | |
| "name": "note" | |
| }, | |
| { | |
| "name": "shuttle" | |
| }, | |
| { | |
| "name": "value" | |
| }, | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "feature" | |
| }, | |
| { | |
| "name": "excellent" | |
| }, | |
| { | |
| "name": "demonstrate" | |
| } | |
| ], | |
| "name": "benefit" | |
| }, | |
| { | |
| "name": "device" | |
| }, | |
| { | |
| "name": "everyday" | |
| }, | |
| { | |
| "name": "city" | |
| }, | |
| { | |
| "name": "continually" | |
| }, | |
| { | |
| "name": "faster" | |
| }, | |
| { | |
| "name": "renewal" | |
| }, | |
| { | |
| "name": "consistently" | |
| }, | |
| { | |
| "name": "activity" | |
| }, | |
| { | |
| "name": "improve" | |
| }, | |
| { | |
| "name": "rockstar" | |
| }, | |
| { | |
| "name": "boundary" | |
| } | |
| ], | |
| "name": "strive" | |
| }, | |
| { | |
| "name": "talent" | |
| }, | |
| { | |
| "name": "community" | |
| }, | |
| { | |
| "name": "benefit" | |
| }, | |
| { | |
| "name": "skill" | |
| } | |
| ], | |
| "name": "person" | |
| } | |
| ], | |
| "name": "cisco" | |
| } | |
| ], | |
| "name": "cisco" | |
| } | |
| ], | |
| "name": "cisco" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "protection" | |
| }, | |
| { | |
| "name": "degree" | |
| }, | |
| { | |
| "name": "malware" | |
| }, | |
| { | |
| "name": "threat" | |
| }, | |
| { | |
| "name": "control" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "help" | |
| }, | |
| { | |
| "name": "continuous" | |
| }, | |
| { | |
| "name": "software" | |
| }, | |
| { | |
| "name": "visibility" | |
| } | |
| ], | |
| "name": "advance" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "require" | |
| }, | |
| { | |
| "name": "competitive" | |
| }, | |
| { | |
| "name": "responsible" | |
| }, | |
| { | |
| "name": "role" | |
| }, | |
| { | |
| "name": "gsso" | |
| }, | |
| { | |
| "name": "step" | |
| }, | |
| { | |
| "name": "provide" | |
| }, | |
| { | |
| "name": "need" | |
| }, | |
| { | |
| "name": "high" | |
| }, | |
| { | |
| "name": "help" | |
| }, | |
| { | |
| "name": "strategic" | |
| }, | |
| { | |
| "name": "highly" | |
| } | |
| ], | |
| "name": "position" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "building" | |
| }, | |
| { | |
| "name": "digital" | |
| }, | |
| { | |
| "name": "transformation" | |
| }, | |
| { | |
| "name": "actively" | |
| }, | |
| { | |
| "name": "monitor" | |
| }, | |
| { | |
| "name": "protect" | |
| }, | |
| { | |
| "name": "share" | |
| }, | |
| { | |
| "name": "drive" | |
| }, | |
| { | |
| "name": "engage" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "communication" | |
| }, | |
| { | |
| "name": "strong" | |
| }, | |
| { | |
| "name": "ability" | |
| }, | |
| { | |
| "name": "desire" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "presentation" | |
| }, | |
| { | |
| "name": "write" | |
| }, | |
| { | |
| "name": "excellent" | |
| }, | |
| { | |
| "name": "verbal" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "knowledge" | |
| }, | |
| { | |
| "name": "require" | |
| } | |
| ], | |
| "name": "skill" | |
| }, | |
| { | |
| "name": "communication" | |
| } | |
| ], | |
| "name": "accelerate" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "unique" | |
| }, | |
| { | |
| "name": "talent" | |
| }, | |
| { | |
| "name": "dynamic" | |
| }, | |
| { | |
| "name": "international" | |
| }, | |
| { | |
| "name": "excitement" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "name": "product" | |
| }, | |
| { | |
| "name": "idea" | |
| }, | |
| { | |
| "name": "market" | |
| }, | |
| { | |
| "name": "help" | |
| }, | |
| { | |
| "name": "corporate" | |
| } | |
| ], | |
| "name": "bring" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "geek" | |
| }, | |
| { | |
| "name": "aficionado" | |
| }, | |
| { | |
| "name": "tech" | |
| }, | |
| { | |
| "name": "strive" | |
| }, | |
| { | |
| "name": "cool" | |
| }, | |
| { | |
| "name": "leader" | |
| }, | |
| { | |
| "name": "wearecisco" | |
| }, | |
| { | |
| "name": "purple" | |
| }, | |
| { | |
| "name": "dot" | |
| }, | |
| { | |
| "name": "benefit" | |
| }, | |
| { | |
| "name": "haired" | |
| }, | |
| { | |
| "name": "polka" | |
| } | |
| ], | |
| "name": "culture" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "edge" | |
| }, | |
| { | |
| "name": "learn" | |
| }, | |
| { | |
| "name": "life" | |
| }, | |
| { | |
| "name": "play" | |
| }, | |
| { | |
| "name": "morning" | |
| }, | |
| { | |
| "name": "excited" | |
| }, | |
| { | |
| "name": "like" | |
| }, | |
| { | |
| "name": "reason" | |
| }, | |
| { | |
| "name": "community" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "local" | |
| }, | |
| { | |
| "name": "want" | |
| } | |
| ], | |
| "name": "come" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "culture" | |
| }, | |
| { | |
| "name": "strive" | |
| }, | |
| { | |
| "name": "benefit" | |
| }, | |
| { | |
| "name": "enable" | |
| }, | |
| { | |
| "name": "latest" | |
| }, | |
| { | |
| "name": "community" | |
| }, | |
| { | |
| "name": "device" | |
| }, | |
| { | |
| "name": "year" | |
| }, | |
| { | |
| "name": "support" | |
| }, | |
| { | |
| "name": "wide" | |
| }, | |
| { | |
| "name": "implement" | |
| }, | |
| { | |
| "name": "design" | |
| } | |
| ], | |
| "name": "empower" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "care" | |
| }, | |
| { | |
| "name": "enjoy" | |
| }, | |
| { | |
| "name": "imagine" | |
| }, | |
| { | |
| "name": "create" | |
| }, | |
| { | |
| "name": "unprecedented" | |
| }, | |
| { | |
| "name": "internet" | |
| }, | |
| { | |
| "name": "disruption" | |
| }, | |
| { | |
| "name": "network" | |
| }, | |
| { | |
| "name": "roughly" | |
| }, | |
| { | |
| "name": "connected" | |
| }, | |
| { | |
| "name": "billion" | |
| } | |
| ], | |
| "name": "unconnected" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "datum" | |
| }, | |
| { | |
| "name": "thing" | |
| }, | |
| { | |
| "name": "innovate" | |
| }, | |
| { | |
| "name": "bold" | |
| }, | |
| { | |
| "name": "come" | |
| }, | |
| { | |
| "name": "connection" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "change" | |
| }, | |
| { | |
| "name": "improvement" | |
| }, | |
| { | |
| "name": "work" | |
| }, | |
| { | |
| "name": "tool" | |
| }, | |
| { | |
| "name": "identify" | |
| } | |
| ], | |
| "name": "process" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "single" | |
| }, | |
| { | |
| "name": "entire" | |
| }, | |
| { | |
| "name": "skill" | |
| }, | |
| { | |
| "name": "set" | |
| }, | |
| { | |
| "name": "planning" | |
| }, | |
| { | |
| "name": "tool" | |
| }, | |
| { | |
| "name": "experience" | |
| }, | |
| { | |
| "name": "ground" | |
| }, | |
| { | |
| "name": "flow" | |
| }, | |
| { | |
| "name": "newly" | |
| }, | |
| { | |
| "name": "clock" | |
| }, | |
| { | |
| "name": "distribution" | |
| } | |
| ], | |
| "name": "floor" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "name": "user" | |
| }, | |
| { | |
| "children": [ | |
| { | |
| "children": [ | |
| { | |
| "name": "application" | |
| }, | |
| { | |
| "name": "management" | |
| }, | |
| { | |
| "name": "improve" | |
| }, | |
| { | |
| "name": "engagement" | |
| }, | |
| { | |
| "name": "operational" | |
| }, | |
| { | |
| "name": "high" | |
| }, | |
| { | |
| "name": "sale" | |
| }, | |
| { | |
| "name": "exceed" | |
| }, | |
| { | |
| "name": "experience" | |
| } | |
| ], | |
| "name": "performance" | |
| } | |
| ], | |
| "name": "performance" | |
| } | |
| ], | |
| "name": "performance" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| d3.layout.orbit = function() { | |
| var currentTickStep = 0; | |
| var orbitNodes; | |
| var orbitSize = [1,1]; | |
| var nestedNodes; | |
| var flattenedNodes = []; | |
| var tickRadianStep = 0.004363323129985824; | |
| var orbitDispatch = d3.dispatch('tick'); | |
| var tickInterval; | |
| var orbitalRings = []; | |
| var orbitDepthAdjust = function() {return 2.95}; | |
| var childrenAccessor = function(d) {return d.children}; | |
| var tickRadianFunction = function() {return 1}; | |
| var fixedOrbitArray = [99]; | |
| var orbitMode = "flat"; | |
| function _orbitLayout() { | |
| return _orbitLayout; | |
| } | |
| _orbitLayout.mode = function(_mode) { | |
| //Atomic, Solar, other? | |
| if (!arguments.length) return orbitMode; | |
| if (_mode == "solar") { | |
| fixedOrbitArray = [1] | |
| } | |
| if (_mode == "atomic") { | |
| fixedOrbitArray = [2,8] | |
| } | |
| if (_mode == "flat") { | |
| fixedOrbitArray = [99] | |
| } | |
| orbitMode = _mode; | |
| if (Array.isArray(_mode)) { | |
| fixedOrbitArray = _mode; | |
| orbitMode = "custom"; | |
| } | |
| return this | |
| } | |
| _orbitLayout.start = function() { | |
| //activate animation here | |
| tickInterval = setInterval( | |
| function() { | |
| currentTickStep++; | |
| flattenedNodes.forEach(function(_node){ | |
| if (_node.parent) { | |
| _node.x = _node.parent.x + ( (_node.ring) * Math.sin( _node.angle + (currentTickStep * tickRadianStep * tickRadianFunction(_node))) ); | |
| _node.y = _node.parent.y + ( (_node.ring) * Math.cos( _node.angle + (currentTickStep * tickRadianStep * tickRadianFunction(_node))) ); | |
| } | |
| }) | |
| orbitalRings.forEach(function(_ring) { | |
| _ring.x = _ring.source.x; | |
| _ring.y = _ring.source.y; | |
| }) | |
| orbitDispatch.tick(); | |
| }, | |
| 10); | |
| } | |
| _orbitLayout.stop = function() { | |
| //deactivate animation here | |
| clearInterval(tickInterval); | |
| } | |
| _orbitLayout.speed = function(_degrees) { | |
| if (!arguments.length) return tickRadianStep / (Math.PI / 360); | |
| tickRadianStep = tickRadianStep = _degrees * (Math.PI / 360); | |
| return this; | |
| } | |
| _orbitLayout.size = function(_value) { | |
| if (!arguments.length) return orbitSize; | |
| orbitSize = _value; | |
| return this; | |
| //change size here | |
| } | |
| _orbitLayout.revolution = function(_function) { | |
| //change ring size reduction (make that into dynamic function) | |
| if (!arguments.length) return tickRadianFunction; | |
| tickRadianFunction = _function; | |
| return this | |
| } | |
| _orbitLayout.orbitSize = function(_function) { | |
| //change ring size reduction (make that into dynamic function) | |
| if (!arguments.length) return orbitDepthAdjust; | |
| orbitDepthAdjust = _function; | |
| return this | |
| } | |
| _orbitLayout.orbitalRings = function() { | |
| //return an array of data corresponding to orbital rings | |
| if (!arguments.length) return orbitalRings; | |
| return this; | |
| } | |
| _orbitLayout.nodes = function(_data) { | |
| if (!arguments.length) return flattenedNodes; | |
| nestedNodes = _data; | |
| calculateNodes(); | |
| return this; | |
| } | |
| _orbitLayout.children = function(_function) { | |
| if (!arguments.length) return childrenAccessor; | |
| //Probably should use d3.functor to turn a string into an object key | |
| childrenAccessor = _function; | |
| return this; | |
| } | |
| d3.rebind(_orbitLayout, orbitDispatch, "on"); | |
| return _orbitLayout; | |
| function calculateNodes() { | |
| orbitalRings = []; | |
| orbitNodes = nestedNodes; | |
| orbitNodes.x = orbitSize[0] / 2; | |
| orbitNodes.y = orbitSize[1] / 2; | |
| orbitNodes.ring = orbitSize[0] / 2; | |
| orbitNodes.depth = 0; | |
| flattenedNodes.push(orbitNodes); | |
| traverseNestedData(orbitNodes); | |
| function traverseNestedData(_node) { | |
| if(childrenAccessor(_node)) { | |
| var y = 0; | |
| var totalChildren = childrenAccessor(_node).length; | |
| var _rings = 0; | |
| var _total_positions = 0; | |
| var _p = 0; | |
| while (_total_positions < totalChildren) { | |
| if (fixedOrbitArray[_p]) { | |
| _total_positions += fixedOrbitArray[_p]; | |
| } | |
| else { | |
| _total_positions += fixedOrbitArray[fixedOrbitArray.length - 1]; | |
| } | |
| _p++; | |
| _rings++; | |
| } | |
| while (y < totalChildren) { | |
| var _pos = 0; | |
| var _currentRing = 0; | |
| var _p = 0; | |
| var _total_positions = 0; | |
| while (_total_positions <= y) { | |
| if (fixedOrbitArray[_p]) { | |
| _total_positions += fixedOrbitArray[_p]; | |
| } | |
| else { | |
| _total_positions += fixedOrbitArray[fixedOrbitArray.length-1]; | |
| } | |
| _p++; | |
| _currentRing++; | |
| } | |
| var ringSize = fixedOrbitArray[fixedOrbitArray.length-1]; | |
| if (fixedOrbitArray[_currentRing-1]) { | |
| ringSize = fixedOrbitArray[_currentRing-1]; | |
| } | |
| if (_node.parent) { | |
| var _ring = {source: _node, x: _node.x, y: _node.y, r: _node.parent.ring / orbitDepthAdjust(_node) * (_currentRing / _rings)}; | |
| } | |
| else { | |
| var _ring = {source: _node, x: _node.x, y: _node.y, r: (orbitSize[0] / 2) * (_currentRing / _rings)}; | |
| } | |
| var thisPie = d3.layout.pie().value(function(d) {return childrenAccessor(d) ? 4 : 1}); | |
| var piedValues = thisPie(childrenAccessor(_node).filter(function(d,i) {return i >= y && i <= y+ringSize-1})); | |
| for (var x = y; x<y+ringSize && x<totalChildren;x++) { | |
| childrenAccessor(_node)[x].angle = ((piedValues[x - y].endAngle - piedValues[x - y].startAngle) / 2) + piedValues[x - y].startAngle; | |
| childrenAccessor(_node)[x].parent = _node; | |
| childrenAccessor(_node)[x].depth = _node.depth + 1; | |
| childrenAccessor(_node)[x].x = childrenAccessor(_node)[x].parent.x + ( (childrenAccessor(_node)[x].parent.ring / 2) * Math.sin( childrenAccessor(_node)[x].angle ) ); | |
| childrenAccessor(_node)[x].y = childrenAccessor(_node)[x].parent.y + ( (childrenAccessor(_node)[x].parent.ring / 2) * Math.cos( childrenAccessor(_node)[x].angle ) ); | |
| childrenAccessor(_node)[x].ring = _ring.r; | |
| flattenedNodes.push(childrenAccessor(_node)[x]); | |
| traverseNestedData(childrenAccessor(_node)[x]); | |
| } | |
| orbitalRings.push(_ring); | |
| y+=ringSize; | |
| } | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <title>Orbit Layout Modes</title> | |
| <meta charset="utf-8" /> | |
| </head> | |
| <style> | |
| #viz, svg { | |
| width: 100%; | |
| height: 100%; | |
| } | |
| text { | |
| pointer-events: none; | |
| } | |
| #buttons { | |
| position: fixed; | |
| top:0; | |
| left:0; | |
| } | |
| circle.ring { | |
| fill: none; | |
| stroke: black; | |
| stroke-width: 1px; | |
| stroke-opacity: .15; | |
| } | |
| </style> | |
| <script> | |
| function makeViz() { | |
| d3.json("d3.json", function(data) {drawOrbit(data)}); | |
| } | |
| function drawOrbit(_data) { | |
| var center = {}; | |
| var recenter = false; | |
| for (var x=0;x<_data.children.length;x++) { | |
| _data.children[x].size = _data.children[x].children ? _data.children[x].children.length : 0; | |
| } | |
| _data.children.sort(function(a,b) { | |
| if (a.size > b.size) { | |
| return 1; | |
| } | |
| if (a.size < b.size) { | |
| return -1; | |
| } | |
| return 0; | |
| }) | |
| sizeScale = d3.scale.linear().domain([0,1,5,10,20]).range([4,6,8,10,12]).clamp(true); | |
| colorScale = d3.scale.linear().domain([0,1,2,3,4]).range(["rgb(161,208,120)","rgb(247,148,72)","rgb(225,203,208)","rgb(174,223,228)","rgb(245,132,102)"]); | |
| planetColors = {Mercury: "gray", Venus: "#d6bb87", Earth: "#677188", Mars: "#7c5541", Jupiter: "#a36a3e", Saturn: "#e9ba85", Uranus: "#73cbf0", Neptune: "#6383d1"} | |
| orbit = d3.layout.orbit().size([800,800]) | |
| .revolution(customRevolution) | |
| .orbitSize(function(d) {return d.depth >= 2 ? 6 : 4}) | |
| .speed(.25) | |
| .mode([35,36,8,3,1]) | |
| .nodes(_data); | |
| center = orbit.nodes()[0]; | |
| d3.select("svg") | |
| .append("g") | |
| .attr("class", "viz") | |
| .attr("transform", "translate(50,50)") | |
| .selectAll("g.node").data(orbit.nodes()) | |
| .enter() | |
| .append("g") | |
| .attr("class", "node") | |
| .attr("transform", function(d) {return "translate(" +d.x +"," + d.y+")"}) | |
| .on("mouseover", nodeOver) | |
| .on("click", recenter) | |
| d3.selectAll("g.node") | |
| .append("circle") | |
| .attr("class", "satellite") | |
| .attr("r", function(d) {return sizeScale(d.children ? d.children.length : 0)}) | |
| .style("fill", function(d) {return colorScale(d.depth)}) | |
| .style("stroke", "brown") | |
| .style("stroke-width", "1px") | |
| d3.selectAll("g.node").filter(function(d) {return d.depth == 1}) | |
| .append("text") | |
| .text(function(d) {return d.depth == 0 ? "Sun" : d.key}) | |
| .attr("y", 20) | |
| .style("text-anchor", "middle") | |
| d3.select("g.viz") | |
| .selectAll("circle.ring") | |
| .data(orbit.orbitalRings()) | |
| .enter() | |
| .insert("circle", "g") | |
| .attr("class", "ring") | |
| .attr("r", function(d) {return d.r}) | |
| .attr("cx", function(d) {return d.x}) | |
| .attr("cy", function(d) {return d.y}) | |
| orbit.on("tick", orbitTick); | |
| orbit.start(); | |
| function orbitTick() { | |
| var newX = 200- center.x; | |
| var newY = 200 - center.y; | |
| d3.select("g.viz") | |
| .attr("transform", "scale("+(1 + (center.depth *.1)) +") translate(" + newX + "," + newY + ")") | |
| d3.selectAll("g.node") | |
| .attr("transform", function(d) {return "translate(" +d.x +"," + d.y+")"}); | |
| d3.selectAll("circle.ring") | |
| .attr("cx", function(d) {return d.x}) | |
| .attr("cy", function(d) {return d.y}); | |
| d3.selectAll("line.visible") | |
| .attr("x1", function(p) {return p.source.x}) | |
| .attr("x2", function(p) {return p.target.x}) | |
| .attr("y1", function(p) {return p.source.y}) | |
| .attr("y2", function(p) {return p.target.y}) | |
| } | |
| function changeCenter() { | |
| recenter = false; | |
| orbit.stop(); | |
| var newX = 200 - center.x; | |
| var newY = 200 - center.y; | |
| d3.select("g.viz") | |
| .transition() | |
| .duration(1000) | |
| .attr("transform", "scale("+(1 + (center.depth *.1)) +") translate(" + newX + "," + newY + ")") | |
| .each("end", function() {orbit.start()}) | |
| } | |
| function customRevolution(d) | |
| { | |
| if (d.name == "time") { | |
| return d.depth * .25; | |
| } | |
| if (d.name == "geo") { | |
| return -d.depth * .25; | |
| } | |
| return d.depth | |
| } | |
| function nodeOver(d) { | |
| orbit.stop(); | |
| center = d; | |
| changeCenter(); | |
| d3.selectAll("text.sat").remove(); | |
| d3.selectAll("line.visible").remove(); | |
| if (d.children) { | |
| var lines = d.children.map(function(p) {return {source: d, target: p}}) | |
| d3.select("g.viz").selectAll("line.visible") | |
| .data(lines) | |
| .enter() | |
| .insert("line", "g") | |
| .attr("x1", function(p) {return p.source.x}) | |
| .attr("x2", function(p) {return p.target.x}) | |
| .attr("y1", function(p) {return p.source.y}) | |
| .attr("y2", function(p) {return p.target.y}) | |
| .attr("class", "visible") | |
| .style("stroke", "rgb(73,106,154)") | |
| .style("stroke-width", 2) | |
| } | |
| if (d.parent) { | |
| d3.select("g.viz").selectAll("line.fake") | |
| .data([{source:d, target: d.parent}]) | |
| .enter() | |
| .insert("line", "g") | |
| .attr("x1", function(p) {return p.source.x}) | |
| .attr("x2", function(p) {return p.target.x}) | |
| .attr("y1", function(p) {return p.source.y}) | |
| .attr("y2", function(p) {return p.target.y}) | |
| .attr("class", "visible") | |
| .style("stroke", "rgb(165,127,124)") | |
| .style("stroke-width", 3) | |
| } | |
| d3.selectAll("g.node") | |
| .filter(function(p) {return p == d || p == d.parent || (d.children ? d.children.indexOf(p) > -1 : false)}) | |
| .append("text") | |
| .text(function(p) {return p.name}) | |
| .style("text-anchor", "middle") | |
| .attr("y", 15) | |
| .attr("class", "sat") | |
| .style("fill", "none") | |
| .style("stroke", "white") | |
| .style("stroke-width", 3) | |
| .style("stroke-opacity", .7); | |
| d3.selectAll("g.node") | |
| .filter(function(p) {return p == d || p == d.parent || (d.children ? d.children.indexOf(p) > -1 : false)}) | |
| .append("text") | |
| .text(function(p) {return p.name}) | |
| .style("text-anchor", "middle") | |
| .attr("y", 15) | |
| .attr("class", "sat"); | |
| d3.selectAll("g.node > circle").style("stroke", "brown").style("stroke-width", 1); | |
| d3.select(this).select("circle").style("stroke", "black").style("stroke-width", 3); | |
| } | |
| } | |
| </script> | |
| <body onload="makeViz()"> | |
| <div id="viz"><svg></svg><div id="buttons"></div></div> | |
| <footer> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script> | |
| <script src="d3.layout.orbit.js" charset="utf-8" type="text/javascript"></script> | |
| </footer> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment