{"id":39082907,"url":"https://github.com/davidfokkema/tailor","last_synced_at":"2026-01-17T18:33:33.877Z","repository":{"id":41996892,"uuid":"345611298","full_name":"davidfokkema/tailor","owner":"davidfokkema","description":"Application for data analysis and curve fitting","archived":false,"fork":false,"pushed_at":"2025-05-26T15:57:15.000Z","size":9801,"stargazers_count":32,"open_issues_count":9,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-26T17:02:36.054Z","etag":null,"topics":["curve-fitting","data-analysis","python","scatterplot","science","spreadsheet-editor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidfokkema.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-08T10:07:20.000Z","updated_at":"2025-05-26T15:57:19.000Z","dependencies_parsed_at":"2024-04-26T09:37:14.000Z","dependency_job_id":"c49cd8f8-7b73-43f0-89da-5f8bc1f8341c","html_url":"https://github.com/davidfokkema/tailor","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/davidfokkema/tailor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfokkema%2Ftailor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfokkema%2Ftailor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfokkema%2Ftailor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfokkema%2Ftailor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidfokkema","download_url":"https://codeload.github.com/davidfokkema/tailor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfokkema%2Ftailor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28515992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["curve-fitting","data-analysis","python","scatterplot","science","spreadsheet-editor"],"created_at":"2026-01-17T18:33:33.270Z","updated_at":"2026-01-17T18:33:33.858Z","avatar_url":"https://github.com/davidfokkema.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Tailor icon](tailorx128.png)\n\n# Tailor\n\nTailor is an application for data analysis and curve fitting. You can fit custom models to your data, simply by entering the mathematical expression and choosing suitable initial values. The application is tailored to giving you an intuitive interface for entering or inspecting your data, calculating additional quantities and comparing different model curves to give you a best fit. Fashion and math do have a bit of shared vocabulary. Hence the name, *Tailor*. Also, at both the Vrije Universiteit Amsterdam and the University of Amsterdam we use the book \"An Introduction to Error Analysis\" by John R. Taylor in our inquiry-based physics labs for students. Taylor discusses least-squares fitting in chapter 8.\n\n**Note:** If you want to try out Tailor please visit the [materials](\u003chttps://davidfokkema.github.io/BFY4-workshop/\u003e) from the \nworkshop on Tailor for the *Beyond the First Year 4 (2023)* conference.\n\n**Note:** Nederlandstalig oefenmateriaal is beschikbaar van onze workshop op [Woudschoten 2023](\u003chttps://davidfokkema.github.io/WND2023-workshop/\u003e).\n\n## Installation\n\nThe latest version is always available on the [Releases page](\u003chttps://github.com/davidfokkema/tailor/releases/latest\u003e) (link is also in the right sidebar). Please scroll down to *Assets* and download the .msi-installer for Windows and the .dmg-installer for macOS. Als u onze stand op Woudschoten 2024 bezocht: dank voor uw interesse!\n\n## Helpdesk\n\nWe don't have a formal helpdesk, but please drop a line to d.b.r.a.fokkema@vu.nl if you need assistance or have questions.\n\n## Features\n\n* Spreadsheet-like editing of data\n* Add multiple datasets in seperate tabs to a single project\n* Import and export of CSV files\n* Copy and paste data to and from external applications\n* Add / remove columns or rows\n* Drag to reorder columns\n* Add columns based on mathematical expressions\n* Create scatter plots with X/Y error bars\n* Fit custom models to data based on mathematical expressions\n* Create as many plots as you like to analyse multiple datasets or the same dataset with different models\n* Use a wide range of Python operators and mathematical functions\n* Deduce parameters automatically from the model expression\n* Easily change initial values and update the initial fit in the plot window\n* Apply bounds on parameters and fix a parameter to a particular value\n* Restrict fits to a subset of the data by specifying a fit domain\n* Include reduced chi-square statistic and parameter value and error estimations in the fit results\n* Easily adjust axis labels and ranges\n* Zoom and pan of all plots\n* Export plots as PNG (bitmap) or PDF (vector) images\n* Copy a dataset with associated plots and load new data to quickly repeat your analysis on a new measurement inside a single project\n* Display multiple datasets and best fits in a single plot for easy comparison\n\n## Screenshots\n\nScreenshot showing the main window with the spreadsheet-like user interface for entering and viewing data:\n![screenshot showing the table user interface](docs/images/screenshot-ui-table.png)\n\nScreenshot showing the user interface for a diagram. In this screen you can zoom and pan the plot and enter a model expression to fit to the data. In this screenshot, an exponential decay model is fitted to data of the decay of a sample of the radon-220 isotope:\n![screenshot showing the plot user interface](docs/images/screenshot-ui-plot.png)\n\nAn example of an exported graph of the same dataset and fit as in the previous screenshot:\n![exported graph of a decaying radon-220 sample](docs/images/exponential-fit-radon220.png)\n\nTailor can display multiple datasets and best fits in a single plot:\n![exported graph showing multiple datasets and best fits of a simple pendulum](docs/images/simple-pendulum-multiplot.png)\n\n## Development\n\nSet up a development environment with::\n\n    $ conda create -n tailor python=3.12\n    $ conda activate tailor\n    $ pip install briefcase\n\nThen, for installing dependencies and running the app in the dev environment::\n\n    $ briefcase dev -d\n\nAfter installing the dependencies, you can drop the `-d` flag and use::\n\n    $ briefcase dev\n\nFor creating a (clean) application::\n\n    $ briefcase create\n\nAnd running the application (don't panic if it doesn't work on MacOS; simply try again)::\n\n    $ briefcase run\n\nUpdating the application can be quickly done with::\n\n    $ briefcase update\n\nor update and run in one go::\n\n    $ briefcase run -u\n\nIf you need to install extra dependencies::\n\n    $ briefcase update -d\n\nMind that this does not *remove* dependencies. You must recreate the application to do that. Creating installers for the application::\n\n    $ briefcase package --no-sign\n\n**This cross-platform app was generated by** [Briefcase][Briefcase] **- part of**\n[The BeeWare Project][The BeeWare Project]. **If you want to see more tools like Briefcase, please\nconsider** [becoming a financial member of BeeWare][becoming a financial member of BeeWare].\n\n[Briefcase]: https://github.com/beeware/briefcase\n[The BeeWare Project]: https://beeware.org/\n[becoming a financial member of BeeWare]: https://beeware.org/contributing/membership\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfokkema%2Ftailor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidfokkema%2Ftailor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfokkema%2Ftailor/lists"}