{"slug": "seaborn", "name": "seaborn", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 5, "warners": 0, "score": 3.529, "rising": -1.31, "first": "2025-11-25", "latest": "2026-06-23", "why": "Seaborn, altair, plotnine all take ggplot's GoG and bring it to Python and I'm really grateful for that.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 0, "compare": 1, "warn": 0}, "spark": [2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Seaborn, altair, plotnine all take ggplot's GoG and bring it to Python and I'm really grateful for that.", "kind": "", "icon": true, "domain": "pydata.org", "github_repo": null, "official_url": "https://seaborn.pydata.org", "pricing": "", "aliases": ["seaborn", "Seaborn"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 778341360, "item_id": 48646335, "url": "https://news.ycombinator.com/item?id=48646335", "by": "stared", "date": "2026-06-23", "version": null, "stance": "recommend", "quote": "For showing distributions, I much prefer strip plots (https://seaborn.pydata.org/generated/seaborn.stripplot.html)", "excerpt": "Violin plots have an interesting reputation (https://xkcd.com/1967/, https://www.reddit.com/r/labrats/comments/91ex4u/is_it_just_me_or_do_these_graphs_look_like_vulvae/, https://jabde.com/2022/12/22/banned-violin-plots/). For showing distributions, I much prefer strip plots (https://seaborn.pydata.org/generated/seaborn.stripplot.html), perhaps with opacity, or swarm plots (https://seaborn.pydata.org/generated/seaborn", "context": "", "use_case": "distribution plotting", "switched_from": "", "story": "Plotnine"}, {"id": 738096481, "item_id": 46131030, "url": "https://news.ycombinator.com/item?id=46131030", "by": "radus", "date": "2025-12-02", "version": null, "stance": "recommend", "quote": "use seaborn when you can", "excerpt": "Polars has a much more consistent API, give it a shot. Regarding your plotting question: use seaborn when you can, but you\u2019ll still need to know matplotlib.", "context": "", "use_case": "statistical plotting", "switched_from": "", "story": "Python Data Science Handbook"}, {"id": 737085972, "item_id": 46067873, "url": "https://news.ycombinator.com/item?id=46067873", "by": "drtc", "date": "2025-11-27", "version": null, "stance": "recommend", "quote": "Seaborn, altair, plotnine all take ggplot's GoG and bring it to Python and I'm really grateful for that.", "excerpt": "I work as a data scientist where I do lots of exploratory work using Python+Pandas/Polars+Jupyter notebooks, I have to say that I agree with the title of the article. I feel like I'm using Python more and more in a way that is just not native to it. Strict typing is simply necessary at some point in time, but I don't get any of the performance benefits or compile-time warnings that other languages provide. But more t", "context": "data scientist", "use_case": "plotting", "switched_from": "", "story": "Python is not a great language for data science"}, {"id": 736882240, "item_id": 46055140, "url": "https://news.ycombinator.com/item?id=46055140", "by": "isolli", "date": "2025-11-25", "version": null, "stance": "recommend", "quote": "It was built exactly for this purpose", "excerpt": "Or seaborn. It was built exactly for this purpose: abstracting some of the annoying kinks of matplotlib while still offering a rich set of features. https://seaborn.pydata.org/tutorial/introduction.html", "context": "", "use_case": "Statistical plotting", "switched_from": "", "story": "Python is not a great language for data science"}]}], "caveats": [], "who": [{"by": "drtc", "context": "data scientist", "url": "https://news.ycombinator.com/item?id=46067873", "date": "2025-11-27"}], "tags": [], "use_cases": ["statistical plotting", "agent-generated plots", "distribution plotting", "plotting"], "compared": [{"slug": "matplotlib", "name": "matplotlib", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "plotnine", "name": "plotnine", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "polars", "name": "Polars", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48596488", "title": "Plotnine", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46047580", "title": "Python is not a great language for data science", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46120611", "title": "Python Data Science Handbook", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 2}, "2025-12": {"recommend": 1}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1, "compare": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 778426401, "item_id": 48651650, "url": "https://news.ycombinator.com/item?id=48651650", "by": "jablongo", "date": "2026-06-23", "version": null, "stance": "compare", "quote": "difficult for me to see the difference between matplotlib, seaborn, and plotnine, when used in this way", "excerpt": "I use agents more and more for generating and refining plots, and its difficult for me to see the difference between matplotlib, seaborn, and plotnine, when used in this way. Agentic coding seems especially well suited to working with scientific figures, and that performance seems more or less agnostic to the underlying framework used (though they seem to prefer matplotlib, given the amount of training data for using", "context": "", "use_case": "agent-generated plots", "switched_from": "", "story": "Plotnine"}, {"id": 778341360, "item_id": 48646335, "url": "https://news.ycombinator.com/item?id=48646335", "by": "stared", "date": "2026-06-23", "version": null, "stance": "recommend", "quote": "For showing distributions, I much prefer strip plots (https://seaborn.pydata.org/generated/seaborn.stripplot.html)", "excerpt": "Violin plots have an interesting reputation (https://xkcd.com/1967/, https://www.reddit.com/r/labrats/comments/91ex4u/is_it_just_me_or_do_these_graphs_look_like_vulvae/, https://jabde.com/2022/12/22/banned-violin-plots/). For showing distributions, I much prefer strip plots (https://seaborn.pydata.org/generated/seaborn.stripplot.html), perhaps with opacity, or swarm plots (https://seaborn.pydata.org/generated/seaborn", "context": "", "use_case": "distribution plotting", "switched_from": "", "story": "Plotnine"}, {"id": 738096481, "item_id": 46131030, "url": "https://news.ycombinator.com/item?id=46131030", "by": "radus", "date": "2025-12-02", "version": null, "stance": "recommend", "quote": "use seaborn when you can", "excerpt": "Polars has a much more consistent API, give it a shot. Regarding your plotting question: use seaborn when you can, but you\u2019ll still need to know matplotlib.", "context": "", "use_case": "statistical plotting", "switched_from": "", "story": "Python Data Science Handbook"}, {"id": 737085972, "item_id": 46067873, "url": "https://news.ycombinator.com/item?id=46067873", "by": "drtc", "date": "2025-11-27", "version": null, "stance": "recommend", "quote": "Seaborn, altair, plotnine all take ggplot's GoG and bring it to Python and I'm really grateful for that.", "excerpt": "I work as a data scientist where I do lots of exploratory work using Python+Pandas/Polars+Jupyter notebooks, I have to say that I agree with the title of the article. I feel like I'm using Python more and more in a way that is just not native to it. Strict typing is simply necessary at some point in time, but I don't get any of the performance benefits or compile-time warnings that other languages provide. But more t", "context": "data scientist", "use_case": "plotting", "switched_from": "", "story": "Python is not a great language for data science"}, {"id": 736882240, "item_id": 46055140, "url": "https://news.ycombinator.com/item?id=46055140", "by": "isolli", "date": "2025-11-25", "version": null, "stance": "recommend", "quote": "It was built exactly for this purpose", "excerpt": "Or seaborn. It was built exactly for this purpose: abstracting some of the annoying kinks of matplotlib while still offering a rich set of features. https://seaborn.pydata.org/tutorial/introduction.html", "context": "", "use_case": "Statistical plotting", "switched_from": "", "story": "Python is not a great language for data science"}]}