web-dev-qa-db-fra.com

styles ggplot en Python

Lorsque je regarde le style de traçage dans la documentation Pandas , les diagrammes sont différents de ceux par défaut. Il semble imiter le "look and feel" de ggplot.

Même chose avec le paquet/ Seaborn .

Comment puis-je charger ce style? (même si je n'utilise pas de cahier?)

22
Josh

Update: Si vous avez matplotlib> = 1.4, il existe un nouveau module style qui a un style ggplot par défaut. Pour l'activer, utilisez:

from matplotlib import pyplot as plt
plt.style.use('ggplot')

Pour voir tous les styles disponibles, vous pouvez vérifier plt.style.available.


De même, pour le style néo-marin, vous pouvez faire:

plt.style.use('seaborn-white')

ou, vous pouvez utiliser les propres machines de seaborn pour configurer le style:

import seaborn as sns
sns.set()

La fonction set() a plus d'options pour sélectionner un style spécifique (voir docs ). Notez que seaborn a précédemment effectué ce qui précède automatiquement lors de l'importation, mais avec les dernières versions (> = 0.8), ce n'est plus le cas.


Si vous voulez également une syntaxe de type ggplot dans Python (et pas seulement le style), jetez un coup d'œil au paquet plotnine , qui est une grammaire d'implémentation graphique de Python avec une syntaxe très similaire à celle de R .


Remarque: l'ancienne réponse mentionnée était pd.options.display.mpl_style = 'default' . Cela a toutefois été déconseillé dans les pandas au profit du style de matplotlib utilisant plt.style(..), et entre-temps, cette fonctionnalité est même supprimée des pandas.

23
joris

Pour les thèmes dans python-ggplot, vous pouvez les utiliser avec d'autres parcelles:

from ggplot import theme_gray
theme = theme_gray()
with mpl.rc_context():
    mpl.rcParams.update(theme.get_rcParams())

    # plotting commands here

    for ax in plt.gcf().axes:
        theme.post_plot_callback(ax)
5
Jan Katins

Si vous avez besoin de voir les styles disponibles:

import matplotlib.pyplot as plt

print(plt.style.available)

Cela imprimera les styles disponibles.

Et utilisez ce lien pour sélectionner le style que vous préférez

https://tonysyu.github.io/raw_content/matplotlib-style-gallery/gallery.html

3
Bodhi94

La réponse de Jan Katins est bonne, mais le projet python-ggplot semble être devenu inactif. Le projet plotnine est plus développé et prend en charge une solution analogue, mais très différente en apparence: 

from plotnine import theme_bw
import matplotlib as mpl
theme = theme_bw()

with mpl.rc_context():
    mpl.rcParams.update(theme.rcParams)
0
groceryheist

Bien que je pense que joris answer soit une meilleure solution puisque vous utilisez Pandas, il convient de mentionner que Matplotlib peut être configuré pour imiter ggplot en émettant la commande matplotlib.style.use('ggplot').

Voir des exemples dans la galerie Matplotlib .

0
AllanLRH