plotters is a Rust data visualization library that provides a high-level API for creating charts and plots. It supports multiple backends (bitmap, SVG, canvas, WASM) via the `DrawingBackend` trait, allowing output to PNG, SVG, GIF, or interactive Jupyter notebooks. The core crate `plotters` offers chart builders, coordinate systems, drawable elements, series, and styles, while backend crates (`plotters-bitmap`, `plotters-svg`) implement the trait. Key entry points include `ChartBuilder`, `DrawingArea`, and backend constructors like `BitMapBackend::new`. Data flows involve user-provided iterators transformed into drawable elements via series (e.g., `LineSeries`, `Histogram`) and rendered to the chosen backend. External dependencies include `image`, `chrono`, `font-kit`, `ab_glyph`, `gif`, and `serde` (optional). The library is designed for embedding in Rust applications, not as a standalone tool, and is actively maintained with extensive examples, benchmarks, and CI.
Troika is a monorepo for a collection of JavaScript libraries focused on building interactive 3D/2D data visualizations and immersive WebXR experiences using Three.js. The core framework (troika-core) provides a declarative facade system with lifecycle hooks, scene descriptors, event handling, and transitions, enabling developers to describe complex scenes with simple property setters. Higher-level packages (troika-3d, troika-3d-ui, troika-xr) extend this with 3D objects, flexbox-based UI blocks, and XR controller/teleport support. Standalone utilities like troika-three-text and troika-three-utils offer high-quality SDF text rendering and generic shader derivation, while troika-worker-utils offloads heavy computation (e.g., font parsing, layout) to web workers. The repository also includes three-instanced-uniforms-mesh for per-instance uniforms, troika-animation for tweening, and a bespoke flex layout engine built on Yoga. Though primarily an application framework, several packages are reusable libraries for any Three.js project, and the examples showcase data-driven scenes (e.g., globe connections, city grids, animated curves). Architecture is modular (monorepo with Lerna) with peer dependencies on Three.js and optional React integration.
Blazer is a mountable Rails engine that turns any application into a business intelligence tool. It allows users to write and execute SQL queries against 20+ database adapters (PostgreSQL, MySQL, BigQuery, Athena, Snowflake, etc.), visualize results as charts (line, bar, pie, scatter, maps), create dashboards with multiple queries, and set up periodic checks with email/Slack alerts. The system also supports CSV uploads, cohort analysis, anomaly detection (via optional Prophet/Trend), and forecasting. Queries are logged for auditing, and results can be cached. Architecture follows the Rails Engine pattern with its own controllers, views, models, and assets. It is highly configurable via a YAML config file and extensible through registration patterns for adapters, notifiers, check types, anomaly detectors, and forecasters.
traffic is a Python library and CLI tool for processing, analyzing, and visualizing air traffic data. It ingests trajectory data from multiple sources including OpenSky Network (via REST/Trino), FlightRadar24, Eurocontrol (DDR, AIXM), FAA, and local ADS-B decoders. The core abstractions are `Flight` (single trajectory) and `Traffic` (collection) built on pandas DataFrames, with extensive methods for cleaning, resampling, filtering, geometric operations, navigation event detection (landing, go-around, holding patterns), performance estimation (fuel flow, emissions), and clustering. The library provides a declarative lazy evaluation pipeline (`LazyTraffic`) that chains operations before a single `.eval()` call, enabling efficient parallel processing. It also offers visualization backends for Matplotlib, Altair, Leaflet, and Plotly, and includes a Vue.js/Deck.gl plugin (Tangram) for real-time landing alignment in a web dashboard.
AAChartKit is a production-ready iOS/macOS charting library that wraps the Highcharts JavaScript engine (v12.6.0) and renders interactive charts via WKWebView. The architecture is a clean Model-View separation: AAChartModel provides a chainable, declarative API for chart configuration, while AAChartView handles WebView lifecycle, JavaScript bridging, and event callbacks. A comprehensive hierarchy of option model classes (AAOptions, AAXAxis, AAPlotOptions, etc.) mirrors the full Highcharts configuration surface, allowing both high-level quick configuration and low-level full control. The library also supports JavaScript function injection via the @AAJSFunc macro for deep customization of tooltips, axes, events, and third-party Highcharts plugins, plus convenience categories for gradients, styles, and safe JS-string conversion. This is an application component library, not a data research project. The bundled demo app (AAChartKitDemo) showcases dozens of chart types from line/column/pie to advanced gauge/waterfall/boxplot with synthetic or hardcoded data. No data ingestion or analytics logic exists in the library itselfβall data flows are user-supplied arrays or points passed to the chart objects. The codebase is mature, actively maintained with recent commits, and distributed via CocoaPods with an automated fastlane release pipeline. While the demo code is verbose and contains significant commented-out legacy support, the core charting API is well-structured, consistent, and demonstrates strong Objective-C craftsmanship.
This repository is a comprehensive educational curriculum for Data Science, structured as a 10-week, 20-lesson course designed for beginners. It functions primarily as a data_research asset, containing Jupyter notebooks, R scripts, Python examples, and curated datasets (CSV, TSV) used for Exploratory Data Analysis (EDA) and visualization. The content covers the full data lifecycle, from data definition and ethics to cloud deployment on Azure, utilizing tools like Pandas, Matplotlib, Seaborn, and ggplot2. While the core is educational data content, it includes a hybrid application component: a Vue.js-based quiz application (`quiz-app`) used for assessments. The repository is heavily localized, with content translated into dozens of languages using an AI translation service, which introduces a specific maintenance pattern involving disclaimers about translation accuracy. The data lineage is well-documented, sourcing datasets from Kaggle, USDA, and Wikipedia, with clear licensing information provided. The codebase is optimized for learning rather than production engineering. Notebooks serve as the primary execution environment, demonstrating data cleaning, visualization, and basic statistical analysis. The architecture is flat and modular, organized by lesson topics (Introduction, Working With Data, Visualization, Lifecycle, Cloud). It is highly valuable for educators and learners seeking reproducible data science examples, though the heavy reliance on AI translation and mixed Vue versions (2 vs 3) presents technical drift risks.
PaCMAP is a production-ready Python library for dimensionality reduction and manifold learning, implementing the Pairwise Controlled Manifold Approximation Projection algorithm. The core package (source/pacmap/) provides a scikit-learn compatible API with BaseEstimator inheritance, enabling seamless integration into ML pipelines. The library supports multiple KNN backends (FAISS, Annoy, Voyager) through a unified abstraction layer, with heavy use of Numba JIT compilation for performance-critical operations like distance calculation and gradient updates. Research components (experiments/, evaluation/, data/) support algorithm validation against benchmarks like t-SNE and UMAP, but the primary deliverable is the reusable library itself. The codebase demonstrates strong engineering practices with comprehensive pytest coverage, model persistence mechanisms, and deterministic random state management across Numba functions.
ITables is a Python library that transforms Pandas, Polars, and other DataFrame libraries into interactive, sortable, and filterable HTML tables using the DataTables.js library. It integrates seamlessly with Jupyter Notebook/Lab, VS Code, Colab, Quarto, and web frameworks like Dash, Streamlit, Shiny, and Panel. The architecture is a thin Python wrapper that generates HTML/JavaScript snippets, with a bundled JavaScript package (dt_for_itables) containing DataTables and its extensions. Key entry points include `itables.show()`, `itables.init_notebook_mode()`, and framework-specific components (e.g., `itables.dash.ITable`). Data flows from DataFrame to JSON serialization (with special handling for floats, categories, and large integers) to HTML template injection. External dependencies include DataTables.js (via CDN or offline bundle), optional Narwhals for multi-backend support, and framework-specific packages (Dash, Streamlit, etc.). The library also provides fallback static HTML and Markdown table rendering for environments without JavaScript.
This repository is a curated, ranked list of open-source Python machine learning libraries, known as 'Best-of Machine Learning with Python'. It functions primarily as a data curation and ecosystem analysis project. The core artifact is a `projects.yaml` file containing structured metadata for over 900 projects, including GitHub identifiers, package manager references, licenses, and category classifications. An automated GitHub Action workflow periodically fetches live metrics (stars, downloads) from GitHub and package registries, recalculates a quality score, and regenerates the `README.md` and changelog files in the `history/` directory. The repository serves as a comprehensive, living directory of the Python ML landscape, tracking trends, identifying dead or inactive projects, and providing a structured, versioned dataset for ecosystem analysis. While it produces a human-readable README, its true value lies in the structured data and the automated curation pipeline, making it a hybrid of a data repository and a content generation system.
This is the official Tableau MCP server, a TypeScript application that bridges AI assistants with Tableau Cloud, Tableau Server, and Tableau Desktop via the Model Context Protocol (MCP). It exposes a comprehensive set of tools covering content exploration (workbooks, views, datasources), administration (users, flows, extract refresh tasks, jobs, license reclamation), advanced analytics (Pulse metrics, insights, knowledge graph), and human-in-the-loop confirmation workflows. The server is available in three variants: a web variant running over HTTP with OAuth 2.1 support (PKCE, token rotation, client registration), a desktop variant communicating with the local Tableau Desktop Agent over stdio, and a combined variant. Its architecture is modular: a core server layer registers tools and prompts against an MCP SDK instance, tools delegate to a Zodios-based Tableau REST API client or the desktop agent API, and cross-cutting concerns like authentication, feature gates, telemetry, and session stores are provided through pluggable provider interfaces. The codebase demonstrates strong engineering practices with extensive unit/e2e tests, typed schemas via Zod, consistent error handling patterns, and a clear separation between web and desktop concerns.
Lumen is an open-source agent framework for chatting with data and building interactive dashboards, built on the HoloViz ecosystem (Panel, hvPlot, Bokeh). It provides a dual interface: a YAML-based declarative dashboard specification system for non-AI use cases, and an AI-powered natural language interface that generates SQL queries and Vega-Lite visualizations from user prompts. The architecture is modular, with clear separation between data sources (files, SQL databases, REST APIs, xarray), data pipelines (filters, transforms, SQL rewrites), views (hvPlot, Vega-Lite, DeckGL, tables), and an AI agent layer (Planner, Coordinator, specialized agents for SQL, visualization, validation, and source ingestion). The AI system supports multiple LLM providers (OpenAI, Anthropic, Google, Ollama, etc.), vector stores for RAG (Numpy, DuckDB, ChromaDB), and a tool system for external API integration. The codebase demonstrates high craftsmanship with reusable patterns like spec-driven component creation (MultiTypeComponent), composable SQL transforms, and a consistent agent/tool abstraction. While primarily an application framework, it includes data pipeline components that could be extracted for data engineering use. The project is actively maintained with extensive test coverage, though its large optional dependency surface and rapid feature velocity introduce some maintenance risk.
Vanna is an open-source Python framework that generates SQL queries from natural language using retrieval-augmented generation (RAG). It provides a modular agent architecture with a core `Agent` class that orchestrates LLM interactions, tool execution, and rich UI component streaming. The system supports multiple LLM providers (OpenAI, Anthropic, Gemini, Ollama, etc.) and vector store backends (ChromaDB, FAISS, Qdrant, Pinecone, etc.) for storing and retrieving training data (question-SQL pairs, DDL, documentation). It includes a comprehensive evaluation framework for comparing agent variants, a legacy Flask API for backward compatibility, and a modern Lit-based web component frontend that renders rich components (tables, charts, cards, progress bars) via SSE streaming. The architecture is highly extensible with dependency injection for lifecycle hooks, LLM middlewares, error recovery strategies, context enrichers, conversation filters, and observability providers. Key entry points include the `Agent.send_message()` async generator, the `ToolRegistry` for tool management, and server factories for Flask and FastAPI. The system relies on external dependencies for LLM APIs, vector databases, and SQL databases, all configured as optional extras. The codebase demonstrates strong engineering practices with clean abstractions, though it carries significant legacy code from a previous version and some placeholder implementations (e.g., MD5-based embeddings in Qdrant).
@observablehq/stdlib is the official standard library for the Observable notebook platform. It provides a comprehensive set of utilities for building interactive data visualizations and applications directly in the browser. The library covers everything from DOM element creation (HTML/SVG/Markdown/LaTeX rendering), file access (FileAttachments with CSV, JSON, SQLite, Excel, Arrow, Parquet support), interactive inputs and reactive programming via generators (observe, queue, range), promise utilities (delay, tick, when), and database clients (SQLite via sql.js, DuckDB via WebAssembly). It is architecturally a monolithic client-side library that exports a main `Library` class, composed from small, single-purpose modules under `src/`. The primary entry point is `src/index.js` (package module) which re-exports all public symbols. The library is consumed primarily by the Observable runtime, but it can also be used standalone via the `Library` constructor. External dependencies are minimal (d3-array, d3-dsv, d3-require); heavy parts like DuckDB and Plot load dynamically from a CDN at runtime. The codebase demonstrates high craftsmanship in its generator implementation (push-to-pull adaptation) and schema inference system for tabular data. However, some modules are tightly coupled to the Observable operation model (e.g., `table.js`). Overall, it is a well-structured, extensively tested library that serves a specific ecosystem but contains several reusable patterns.
Rock Radar is a frontend web application for displaying multi-dimensional data using interactive radar charts. It visualizes entity attributes (such as bands or game players) across configurable dimensions with animated transitions, background particle effects, and synchronized audio playback. The application features a draggable timeline for navigating between data points, fullscreen mode for video capture, and extensive customization through a CONFIG object. Built with vanilla JavaScript and HTML5 Canvas, it implements sophisticated visual effects including multi-layer glow effects on the radar chart and a dual-type particle system. The codebase includes two variants: index.html (general purpose) and index-cs.html (specialized for Counter-Strike statistics).
Smudgeplot is a bioinformatics CLI tool for reference-free ploidy inference from whole genome sequencing data. It operates on FastK k-mer databases, identifying heterozygous k-mer pairs (hetmers) using a high-performance C backend, then aggregates them into 'smudges' via a local clustering algorithm in Python. The tool infers haploid coverage through a grid search and produces 2D histogram plots (smudgeplots) that reveal haplotype structure. The codebase is a hybrid of a Python package (command-line interface, data analysis, matplotlib-based visualization) and a custom C library (parallelized k-mer pair detection). It follows a clean architecture with well-separated concerns, a comprehensive CLI, and CI/CD pipelines for distribution. The project is actively maintained, with recent support for Python 3.14 and cross-platform wheel builds.
This repository is the DGCharts framework (formerly Charts), a mature, open-source charting library for Apple platforms (iOS, tvOS, macOS). It is a direct port of the popular MPAndroidChart library, providing nearly identical API for cross-platform consistency. The library offers eight primary chart types: Line, Bar, Pie, Scatter, CandleStick, Bubble, Radar, and Combined (overlaying multiple chart types). It supports rich customization including dual axes, animations, legends, highlighters, limit lines, markers, and value formatters. The codebase is structured with protocol-oriented design separating views, renderers, data models, and formatters. It includes comprehensive demo applications for iOS (Swift and Objective-C) and macOS, as well as playgrounds and snapshot-based unit tests. The library is distributed via CocoaPods, Carthage, and Swift Package Manager, and requires iOS 12+, tvOS 12+, or macOS 10.13+. While the core functionality is well-established, the codebase shows some technical debt including deprecated API methods, TODOs for Swift collection conformance, and a large number of demo controllers that duplicate boilerplate. Overall, it is a production-grade visualization library with a strong architecture and active maintenance.
FigMirror is a reference-conditioned scientific figure style transfer system that iteratively generates matplotlib scripts matching the visual style of a reference figure. It operates as a multi-agent loop (Drawer/Reviewer) orchestrated by a runner backend (Codex, Claude, or Mock), with a local web UI for upload, iteration browsing, and refinement. The system is packaged as skills for both Claude Code and Codex, plus a standalone web server. While primarily an application, it has a strong research component: the prompts, aesthetic library, and evaluation benchmarks (PlotTwin-Bench) are the result of extensive empirical iteration. The codebase demonstrates high craftsmanship in its runner architecture, atomic file operations, SSE streaming, and deterministic review gates. However, it suffers from dual skill bundles (Claude/Codex) that must stay synchronized, retired artifacts, and some incomplete features (ClaudeRunner, SSE integration).
DSMR-reader is a production-grade Django web application for reading, storing, and visualizing Dutch Smart Meter (DSMR) data from the P1 port. It parses electricity, gas, and water consumption telegrams via serial or network socket, computes hourly/daily statistics with cost calculations, and provides a comprehensive web dashboard with interactive ECharts graphs, a REST API (v1/v2), and integrations with MQTT, InfluxDB, Dropbox, PVOutput, MinderGas, and notification services (Pushover, Telegram, Prowl). The application is container-first (Docker/Podman) and requires PostgreSQL 14+. It exhibits a modular Django app architecture with a signal-driven service layer, singleton settings via django-solo, and extensive test coverage. The frontend is built with Bootstrap 3, jQuery, and Font Awesome 7.2.0 but carries significant technical debt (legacy libraries, unused CSS, jQuery UI), and the project maintains a detailed tech-debt document tracking planned upgrades.
This is the d3/d3 monorepo β the umbrella package for D3.js v7.9.0, the canonical JavaScript library for bespoke data visualization. The repository's src/index.js is a pure re-export barrel: it aggregates 28 individual D3 modules (d3-array, d3-axis, d3-scale, d3-selection, d3-shape, d3-geo, d3-hierarchy, d3-force, d3-transition, etc.) and re-exports their entire public APIs. There is no application logic, no DOM code, and no data processing in this repo itself β all implementation lives in the individual submodule packages listed under dependencies. The repo's real content is its documentation site (VitePress-based, in docs/), its test suite (mocha tests verifying the barrel exports), and its build configuration (rollup.config.js bundles the modules into UMD and ESM distributions in dist/). The docs/ directory contains comprehensive, interactive API documentation for every submodule, with live Vue components rendering visualizations using D3 and Observable Plot. The test suite is minimal but meaningful: d3-test.js verifies that every named export from each submodule is present on the d3 namespace, and docs-test.js crawls the markdown documentation to verify that all internal links resolve to existing anchors. The CI pipeline runs tests, linting, bundle builds, and doc builds on every push to main.
This repository is a curated resource list for data science education and practice, following the popular 'awesome-' list format. It does not perform data research itself but aggregates links to tutorials, courses, tools, books, and other learning materials across the data science spectrum. The repository's primary function is reference and education rather than active data processing or analysis. While classified as data_research due to its subject matter, the repository is fundamentally a documentation and curation project. It contains minimal executable code, consisting mainly of the README.md resource list, standard community health files (CODE_OF_CONDUCT.md, CONTRIBUTING.md), and a simple CI workflow for link validation. The value lies in the comprehensiveness and organization of the curated links rather than in technical implementation. The project demonstrates maintenance awareness through its link-checking CI setup and clear contribution guidelines. Despite being primarily a static resource list, it shows good practices for documentation projects: automated link validation to prevent link rot, structured contribution processes, and clear licensing. Its enormous popularity (nearly 30k stars) indicates sustained community value as a starting point for data science learners.