plotnine
db-benchmark
Our great sponsors
plotnine | db-benchmark | |
---|---|---|
36 | 91 | |
3,781 | 320 | |
- | 2.2% | |
9.7 | 0.0 | |
about 12 hours ago | 9 months ago | |
Python | R | |
MIT License | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
plotnine
- FLaNK AI Weekly 18 March 2024
-
A look at the Mojo language for bioinformatics
To your last point, have you tried plotnine? It's meant to be ggplot2 for python.
-
Mastering Matplotlib: A Step-by-Step Tutorial for Beginners
plotnine - A grammar of graphics for Python based on ggplot2.
-
Top 10 growing data visualization libraries in Python in 2023
Github: https://github.com/has2k1/plotnine
-
Lets-Plot: An open-source plotting library by JetBrains
This seems quite similar to plotnine [0], which also provides a grammar of graphics interface for Python. That said, I love ggplot and I can't wait to use this in my research! I hope we can port/re-implement ggthemes, scientificplots [1], and other ggplot libraries for lets-plot.
-
Every modeler is supposed to be a great Python programmer
> Python doesn’t yet have anything remotely close to ggplot for rapidly making exploratory graphics, for example.
Plug for plotnine (https://plotnine.readthedocs.io/en/stable/). I don't know R but use ggplot indirectly through this library for exploratory data analysis, and comparing the experience to any other python plotting library, I understand why R folks are usually so sad to be using Python.
-
What's New in Matplotlib 3.6.0
Python is my daily driver, but I briefly experimented with R and had a delightful experience with ggplot2. The ‘grammar of graphics’ was hard to leave behind when I switched back to Python, until I heard about Plotnine [1], which brings much of the same grammar and functionality to Python. It’s built on Matplotlib and a few other common libraries like Pandas.
-
Will Rust-based data frame library Polars dethrone Pandas? We evaluate on 1M+ Stack Overflow questions
The best one I've found is plotnine, which is just a reimplementation of the ggplot API.
-
What to do next after learning basic python grammar
I will separate my answer on two parts: (1) fun stuff and (2) useful work-related things. As it relates to (1), it is obviously a function on what you're mainly interested in. Nonetheless, I definitely recommend reading parts of the book Think Python (available for free here), which includes many different examples on how to use Python for creating your own functions, and I've used it to build my own tweet scraper using Tweepy, create budget planners, etc. As it relates to (2), I believe it is useful to learn about data manipulation and visualization libraries (I have a job related to business development). For instance, knowing how to use Pandas to take a database of customers, group them by some useful variables (such as location, spending potential, etc.), and use visualization libraries (such as MatplotLib or Plotnine) to display your analysis can help you build sales report much more quickly. Hope this helps.
-
Unpopular opinion: Matplotlib is a bad library
I think plotnine is one solution. It is implemented based on matplotlib, but it provides an almost complete ggplot syntax for matplotlib. The other solution is a next-generation seaborn interface. It is also `build on matplotlib and still in progress; however, the API would be really useful! And I have personally also developed a few libraries to solve the complex syntax of matplotlib. As an example, patchworkllib allows dynamic subplot layout on Jupyter-lab. Maybe the library can support handling matplotlib and seaborn plots.
db-benchmark
-
Polars
Real-world performance is complicated since data science covers a lot of use cases.
If you're just reading a small CSV to do analysis on it, then there will be no human-perceptible difference between Polars and Pandas. If you're reading a larger CSV with 100k rows, there still won't be much of a perceptible difference.
Per this (old) benchmark, there are differences once you get into 500MB+ territory: https://h2oai.github.io/db-benchmark/
-
DuckDB performance improvements with the latest release
I do think it was important for duckdb to put out a new version of the results as the earlier version of that benchmark [1] went dormant with a very old version of duckdb with very bad performance, especially against polars.
-
Show HN: SimSIMD vs. SciPy: How AVX-512 and SVE make SIMD cleaner and ML faster
https://news.ycombinator.com/item?id=33270638 :
> Apache Ballista and Polars do Apache Arrow and SIMD.
> The Polars homepage links to the "Database-like ops benchmark" of {Polars, data.table, DataFrames.jl, ClickHouse, cuDF, spark, (py)datatable, dplyr, pandas, dask, Arrow, DuckDB, Modin,} but not yet PostgresML? https://h2oai.github.io/db-benchmark/ *
LLM -> Vector database: https://en.wikipedia.org/wiki/Vector_database
/? inurl:awesome site:github.com "vector database"
-
Pandas vs. Julia – cheat sheet and comparison
I agree with your conclusion but want to add that switching from Julia may not make sense either.
According to these benchmarks: https://h2oai.github.io/db-benchmark/, DF.jl is the fastest library for some things, data.table for others, polars for others. Which is fastest depends on the query and whether it takes advantage of the features/properties of each.
For what it's worth, data.table is my favourite to use and I believe it has the nicest ergonomics of the three I spoke about.
-
Any faster Python alternatives?
Same. Numba does wonders for me in most scenarios. Yesterday I've discovered pola-rs and looks like I will add it to the stack. It's API is similar to pandas. Have a look at the benchmarks of cuDF, spark, dask, pandas compared to it: Benchmarks
-
Pandas v2.0 Released
If interested in benchmarks comparing different dataframe implementations, here is one:
-
Python "programmers" when I show them how much faster their naive code runs when translated to C++ (this is a joke, I love python)
Bad examples. Both numpy and pandas are notoriously un-optimized packages, losing handily to pretty much all their competitors (R, Julia, kdb+, vaex, polars). See https://h2oai.github.io/db-benchmark/ for a partial comparison.
-
Best alternative to Pandas 2023?
And what's your rating scale? Objectively, pandas loses in performance against everything relevant. It has a wonky syntax that requires using lambda all over the place or to retype your df name at least twice for many operations.
-
Tutorial on Intro to Rust Programming
There has been an upward trend in opensource tools written in Rust with interfaces to python eg: pydantic (moved to Rust in the recent release), polars which is very fast as indicated in the H2Oai benchmarks.
- How do I work with GIGANTIC csv files (20-100 gigabytes)?
What are some alternatives?
seaborn - Statistical data visualization in Python
matplotlib - matplotlib: plotting with Python
Altair - Declarative statistical visualization library for Python
plotly - The interactive graphing library for Python :sparkles: This project now includes Plotly Express!
ggplot - ggplot port for python
polars - Dataframes powered by a multithreaded, vectorized query engine, written in Rust
arrow-datafusion - Apache Arrow DataFusion SQL Query Engine
bokeh - Interactive Data Visualization in the browser, from Python
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
databend - 𝗗𝗮𝘁𝗮, 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀 & 𝗔𝗜. Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. https://databend.com
DearPyGui - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies