- Lets-Plot est une bibliothèque de tracé multiplateforme qui prend en charge la visualisation de données statistiques en Python et Kotlin, sur la base des principes de la Grammar of Graphics
- Elle fournit des implémentations distinctes pour Python et Kotlin, afin de s’adapter aux workflows de chaque écosystème, des environnements notebook aux IDE et au développement d’applications
- En Python, les graphiques peuvent être consultés non seulement dans les notebooks, mais aussi dans PyCharm et dans SciView d’IntelliJ IDEA
- En Kotlin, elle cible des cas d’usage de visualisation allant des notebooks Kotlin aux applications Compose-Multiplatform
- Avec le géocodage, le tracé de GeoDataFrame et la personnalisation des infobulles et annotations, elle peut aussi être utilisée pour les données spatiales et la création de graphiques interactifs
Présentation de Lets-Plot
- Lets-Plot est une bibliothèque de tracé multiplateforme fondée sur les principes de la Grammar of Graphics
- Pour apprendre ggplot2 et la Grammar of Graphics en parallèle, la ressource recommandée est « ggplot2: Elegant Graphics for Data Analysis » de Hadley Wickham
- Les ressources de démarrage et les exemples sont disponibles aux emplacements suivants
Plateformes prises en charge et principales fonctionnalités
-
Python
- Il s’agit d’une bibliothèque de visualisation Python proposée comme Grammar of Graphics for Python
- Elle peut être utilisée dans les notebooks Python
- Les graphiques peuvent aussi être consultés dans SciView des IDE PyCharm et IntelliJ IDEA
-
Kotlin
- Il s’agit d’une bibliothèque de visualisation multiplateforme Kotlin proposée comme Grammar of Graphics for Kotlin
- Elle cible des cas d’usage de l’écosystème Kotlin, des notebooks Kotlin aux applications Compose-Multiplatform
-
Visualisation géospatiale
-
Infobulles et annotations
- Il est possible de personnaliser le contenu, le format des valeurs et l’apparence des tooltip et annotation des couches de graphique
1 commentaires
Avis sur Hacker News
Très sympa. Ça semble s’appuyer sur une grammaire des graphiques de type ggplot2. On peut voir des exemples ici : https://lets-plot.org/pages/charts.html
Les graphiques de données ont aussi l’air très réussis : https://lets-plot.org/pages/charts.html#discrete-icon-discre...
Les graphiques de distribution également : https://lets-plot.org/pages/charts.html#visualization-of-dis...
Je me demande comment ce projet se compare à
plotnine, la bibliothèque de tracé de style ggplot2 pour PythonL’inconvénient des bibliothèques de la famille ggplot dans des langages autres que R, c’est qu’on perd l’énorme quantité d’excellentes bibliothèques d’extension[1] disponibles dans l’original. Personnellement, je fais souvent beaucoup de traitement de données en Python, puis j’exporte vers R, et je fais tous mes graphiques là-bas
J’ai l’impression que les gens des stats accordent plus d’importance aux graphiques et passent plus de temps à les peaufiner. Et Copilot aide vraiment très bien avec la sémantique et les options de ggplot basées sur R, parce qu’il y a énormément de matière pour l’apprentissage. Je ne sais pas si ce serait aussi vrai pour les subtiles différences des bibliothèques qui en sont des répliques
[1] https://youtu.be/7UjA_5gNvdw
Avec suffisamment de contexte, ils ont probablement de bonnes chances de produire un résultat exploitable
Ça ressemble aussi beaucoup à
plotnine[0], qui fournit à Python une interface de grammaire des graphiques. J’aime quand même ggplot, donc j’ai hâte d’avoir l’occasion d’utiliser ça pour mes recherchesCe serait bien de pouvoir porter ou réimplémenter
ggthemes,scientificplots[1] et d’autres bibliothèques ggplot dans lets-plot0: https://plotnine.readthedocs.io/en/stable/
1: https://github.com/garrettj403/SciencePlots
Je ne vois pas pourquoi c’est nécessaire. Quelqu’un cherchait-il désespérément encore une autre bibliothèque de plotting ?
Seaborn est bien, mais il faut toujours se battre avec l’abstraction imparfaite qui fuit au-dessus de matplotlib, ce qui rend la composition difficile, et il est aussi compliqué d’obtenir de l’interactivité. Donc oui, moi j’en veux une comme ça. Je veux de bons graphiques interactifs, rapides et donnant une sensation native, et j’ai même essayé d’en créer moi-même. Ggplot permet de se concentrer uniquement sur ce qu’on veut dessiner et de lui passer un dataframe, et ça a l’air d’être aussi le cas ici
Existe-t-il des tutoriels ou guides orientés Python pour créer des graphiques avec cette approche grammaire des graphiques ? Ou faut-il lire un livre sur ggplot2 et traduire les exemples R en Python ?
https://vega.github.io/vega/docs/
Tout est en Kotlin Multiplatform, avec seulement un fin wrapper Python par-dessus. C’est assez surprenant
Le plus gros problème des bibliothèques de tracé, c’était qu’elles ne géraient pas correctement des centaines de millions de points de données de façon immédiate. Dans mon précédent projet de data science, j’ai essayé toutes les grandes bibliothèques de plotting, mais aucune ne fonctionnait correctement au-delà de quelques millions de points.
Je voulais des graphiques qu’on puisse visualiser, agrandir et réduire en temps réel, et c’est devenu la partie difficile du projet. Un seul produit prétendait pouvoir le faire via un GPU dans le cloud, mais il fallait un abonnement payant et envoyer les données dans le cloud. Je ne voulais pas juste une bibliothèque de plus, mais une bibliothèque qui fonctionne vraiment bien et puisse exploiter un GPU local pour le tracé.
En descendant vers les exemples, il y a des tracés avec énormément de points : https://wwwtyro.github.io/candygraph/examples/dist/
https://github.com/epezent/implot
Java : https://github.com/SpaiR/imgui-java
Il y en a aussi pour Rust :
https://www.egui.rs/#Demo
Il suffit de regarder la démo Open Plot. Sur le web, ça devrait pouvoir se compiler en WASM. On pourrait sans doute faire uniquement le graphe en WASM et l’intégrer dans le DOM existant.
https://github.com/holoviz/datashader est aussi un bon choix dans l’écosystème Python.
ggplot2 est excellent pour l’exploration de données. C’était autrefois l’avantage décisif de R.
Pour les tableaux de bord, je préfère Apache ECharts :
https://github.com/ecomfe/awesome-echarts
Vraiment génial. Est-ce que c’est une réimplémentation de ggplot2 en Python ?
pyggest une bibliothèque légère qui convertit la syntaxe ggplot de Python en code R ggplot2.Son inconvénient, c’est que ce n’est pas interactif et que ça s’exécute en R ; son avantage, c’est que cela exécute l’implémentation R de ggplot par Hadley.
https://github.com/sirrice/pygg
À mes yeux, c’est un peu décevant qu’ils aient simplement copié ggplot. ggplot n’est pas la réponse ultime à la conception des bibliothèques de visualisation.
Par exemple, ggplot a une notion de scale qui correspond presque exactement à une fonction. Cela n’ajoute qu’un surplus conceptuel inutile à la bibliothèque. Le supprimer serait une amélioration facile.
Avec matplotlib, il faut l’avoir beaucoup utilisé récemment et même avoir GitHub Copilot pour s’en approcher.