{"id":13555104,"url":"https://github.com/pcbje/ggraph","last_synced_at":"2025-04-03T07:33:51.191Z","repository":{"id":147146667,"uuid":"77681458","full_name":"pcbje/ggraph","owner":"pcbje","description":"Graph visualization of big messy data","archived":false,"fork":false,"pushed_at":"2017-01-30T18:19:50.000Z","size":43,"stargazers_count":803,"open_issues_count":0,"forks_count":62,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-08-01T12:33:42.819Z","etag":null,"topics":["graph-visualization","messy-data"],"latest_commit_sha":null,"homepage":"https://gransk.com/ggraph.html","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pcbje.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-12-30T11:08:59.000Z","updated_at":"2024-07-10T07:09:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7b84457-98cc-446b-8c9d-fc8684014ca9","html_url":"https://github.com/pcbje/ggraph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcbje%2Fggraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcbje%2Fggraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcbje%2Fggraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcbje%2Fggraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pcbje","download_url":"https://codeload.github.com/pcbje/ggraph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222935631,"owners_count":17060398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph-visualization","messy-data"],"created_at":"2024-08-01T12:03:01.946Z","updated_at":"2024-11-04T03:31:43.526Z","avatar_url":"https://github.com/pcbje.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"# ggraph - Graph visualization for messy data\n\n[![Build Status](https://travis-ci.org/pcbje/ggraph.svg?branch=master)](https://travis-ci.org/pcbje/ggraph)\n [![Coverage Status](https://coveralls.io/repos/github/pcbje/ggraph/badge.svg?branch=master)](https://coveralls.io/github/pcbje/ggraph?branch=master)\n\n![](https://gransk.com/ggraph/ggraph.gif)\n\nThis is a library built on top D3 with the goal of improving how we work with large and messy graphs. It extends the notion of nodes and links with groups of nodes. This is useful when multiple nodes are in fact the same thing or belong to the same group.\n\nLive demo: https://gransk.com/ggraph.html\n\nSome examples of nodes that may belong together:\n\n- IPs in the same subnet\n- Emails / monikers\n- File fingerprints\n- Bitcoin addresses in same wallet\n- Alternative spellings and typos\n\n## Data model\n\nThe easiest apporach is to call ```ggraph.convert``` with a valid D3 object:\n\n```javascript\nvar graph = {\n  nodes:[\n    {id: \"Maria West\", type: \"female\"},\n    {id: \"Hazel Santiago\", type: \"male\"},\n    {id: \"Sheldon Roy\", type: \"male\"}    \n  ],\n  links: [\n    {source: \"Maria West\", target: \"Hazel Santiago\", value:100},\n    {source: \"Maria West\", target: \"Sheldon Roy\"}    \n  ]\n}\n\nconverted = ggraph.convert(graph);\n```\n\n## Usage\n\nInitialization:\n\n```javascript\nggraph.init('container', 25); // Marker timeout\nggraph.draw(converted);\n```\n\nMerge nodes into groups:\n\n```javascript\n// Merge selected\nggraph.merge(selection.all());\n\n// Into single group\nggraph.merge(['Maria West', 'Sheldon Roy']);\n\n// Into several groups\nggraph.merge([\n  ['A', 'B'],\n  ['C', 'D']\n]);\n```\n\nSplit and remove:\n\n```javascript\nggraph.split(['Maria West', 'Sheldon Roy']);\nggraph.remove(['Maria West', 'Hazel Santiago']);\n```\n\n## Building\n\n```bash\ngit clone https://github.com/pcbje/ggraph \u0026\u0026 cd ggraph\nnpm install\nnode_modules/.bin/karma start tests/cover.conf.js\nnode_modules/.bin/karma start tests/watch.conf.js\nnode_modules/.bin/grunt min\n```\n\n## Disclaimer\nThis is a work in progress. Contributions are very much welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcbje%2Fggraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpcbje%2Fggraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcbje%2Fggraph/lists"}