{"id":47250,"library":"circular-migration-plot","title":"Circular Migration Plot","description":"A D3-based library for creating interactive circular migration plots (chord diagrams) for the web, inspired by global-migration.info and german-migration.info. Version 1.2.0 (stable, last release ca. 2014) provides CLI tools for data filtration and compilation of CSV migration flows into JSON, plus a browser-based visualization component. Key differentiators: bundled CLI workflow for data preprocessing, minimal setup via global npm install, and dependency on D3 for rendering. The library is in maintenance mode with no recent updates.","status":"maintenance","version":"1.2.0","language":"javascript","source_language":"en","source_url":"git://github.com/jo/circular-migration-plot","tags":["javascript","d3","migration","plot"],"install":[{"cmd":"npm install circular-migration-plot","lang":"bash","label":"npm"},{"cmd":"yarn add circular-migration-plot","lang":"bash","label":"yarn"},{"cmd":"pnpm add circular-migration-plot","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for rendering the circular migration plot (D3 chord layout).","package":"d3","optional":false},{"reason":"Used for building the browser bundle (development dependency).","package":"browserify","optional":true}],"imports":[{"note":"Library is designed for browser use via <script> tag. No ESM export; imports via bundler may require default import.","wrong":"// Not a CommonJS module; use browser script tag or bundler with default import","symbol":"CircularMigrationPlot","correct":"import CircularMigrationPlot from 'circular-migration-plot';"},{"note":"The library exposes a global variable 'CircularMigrationPlot'. In Node.js, use global install and CLI tools instead.","wrong":"const CircularMigrationPlot = require('circular-migration-plot');","symbol":"CircularMigrationPlot","correct":"<script src=\"node_modules/circular-migration-plot/dist/circular-migration-plot.js\"></script>\n<script> CircularMigrationPlot({...}); </script>"},{"note":"CLI tool installed globally via npm install -g. Not available as a programmatic API.","wrong":"npx cmp-filter ...","symbol":"cmp-filter","correct":"cmp-filter data/countries.csv data/flows.csv"},{"note":"CLI tool for converting CSV to JSON. Input can be stdin or file.","wrong":"cmp-compile --help","symbol":"cmp-compile","correct":"cmp-compile flows.csv --regions North,West --pretty"}],"quickstart":{"code":"// Install globally\n// npm install -g circular-migration-plot\n\n// Prepare data: filter and compile\n// head -n30 data/flows.csv | cmp-filter data/countries.csv | cmp-compile > migration-flows.json\n\n// In browser:\n// <script src=\"node_modules/circular-migration-plot/dist/circular-migration-plot.js\"></script>\n// <div id=\"chart\"></div>\n// <div id=\"timeline\"></div>\n// <script>\n//   CircularMigrationPlot({\n//     data: 'migration-flows.json',\n//     chart: '#chart',\n//     timeline: '#timeline'\n//   });\n// </script>","lang":"javascript","description":"Shows global installation, CLI data pipeline, and browser integration for an interactive circular migration chart."},"warnings":[{"fix":"Use 'npm install -g circular-migration-plot' and run commands from shell.","message":"Global installation required for CLI tools (cmp-filter, cmp-compile). Not available as programmatic Node.js API.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Add 'declare module \"circular-migration-plot\";' in a .d.ts file.","message":"No type definitions provided; TypeScript users must declare module or use *.d.ts.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Pin to D3 v3 if using alongside other D3 v3 components, or expect incompatibility.","message":"D3 v3 is used internally; newer D3 v4+ chord layout API changed significantly. The library may not work with modern D3.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use own data or verify license compatibility for commercial projects.","message":"Sample data is under Creative Commons NonCommercial license. Commercial use may require different data.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use the UMD bundle directly or configure bundler to include the full library.","message":"No ES module (ESM) export; only CommonJS build via Browserify. May not tree-shake with modern bundlers.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.2.0':26 '2014':31 'base':7,50 'browser':49 'browser-bas':48 'bundl':55 'ca':30 'chord':15 'circular':1,12 'cli':33,56 'compil':39 'compon':52 'creat':10 'csv':41 'd3':6,70,84 'd3-based':5 'data':36,59 'depend':68 'diagram':16 'differenti':54 'filtrat':37 'flow':43 'german-migration.info':24 'global':64 'global-migration.info':22 'inspir':20 'instal':66 'interact':11 'javascript':83 'json':45 'key':53 'last':28 'librari':8,74 'mainten':77 'migrat':2,13,42,85 'minim':61 'mode':78 'npm':65 'plot':3,14,86 'plus':46 'preprocess':60 'provid':32 'recent':81 'releas':29 'render':72 'setup':62 'stabl':27 'tool':34 'updat':82 'version':25 'via':63 'visual':51 'web':19 'workflow':57","created_at":"2026-06-07T16:50:33.825770+00:00","updated_at":"2026-06-07T16:50:33.825770+00:00","problems":[{"fix":"Ensure <script src=\"node_modules/circular-migration-plot/dist/circular-migration-plot.js\"></script> is included before calling CircularMigrationPlot.","cause":"Script not loaded before usage or wrong path to dist file.","error":"ReferenceError: CircularMigrationPlot is not defined"},{"fix":"This library is meant for browser use. Use the CLI tools via global install: 'npm install -g circular-migration-plot' then run commands from terminal.","cause":"Attempted to require in Node.js without global install.","error":"Cannot find module 'circular-migration-plot'"},{"fix":"Run 'npm install -g circular-migration-plot' to install CLI tools globally.","cause":"Package not installed globally.","error":"cmp-filter: command not found"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/jo/circular-migration-plot","github":"git://github.com/jo/circular-migration-plot","docs":null,"changelog":null,"pypi":null,"npm":"circular-migration-plot","openapi_spec":null,"status_page":null,"smithery":null,"categories":["visualization"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}