Skip to main content

French-themed matplotlib markers and colormaps

Project description

🥖 frenchplotlib

Une bibliothèque Python pour ajouter une touche française à vos visualisations matplotlib avec des marqueurs personnalisés et des palettes de couleurs inspirées de la France.

📝 Description

frenchplotlib enrichit vos graphiques matplotlib avec :

  • 🥐 17 marqueurs personnalisés en forme d'icônes françaises (baguette, croissant, vin, fromage, etc.)
  • 🎨 16 palettes de couleurs inspirées de la culture française (tricolore, lavande de Provence, Bordeaux, etc.)
  • 🖼️ 8 styles graphiques prédéfinis pour transformer l'apparence complète de vos graphiques (Versailles, Bistrot, Côte d'Azur, etc.)

🚀 Installation

pip install frenchplotlib

📦 Prérequis

  • Python >= 3.6
  • matplotlib
  • numpy

Pour les marqueurs SVG personnalisés (optionnel)

Si vous souhaitez utiliser load_svg_marker() pour charger vos propres fichiers SVG :

pip install svgpathtools svgpath2mpl

💡 Utilisation

Marqueurs personnalisés prédéfinis

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import tapisseries

# Données d'exemple
x = np.linspace(-1, 1, 20)
y = np.sin(x)

# Utilisation d'un marqueur en forme de boule de pain
plt.figure(figsize=(10, 6))
plt.scatter(x, y, marker=tapisseries.boule, s=500)
plt.title("Graphique avec marqueur français")
plt.show()

Marqueurs personnalisés depuis SVG

Vous pouvez également charger vos propres marqueurs SVG ou utiliser les marqueurs fournis dans le dossier assets/ :

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib.custom_marker import load_svg_marker

# Charger un marqueur SVG personnalisé
marker = load_svg_marker('frenchplotlib/assets/baguette.svg')

# Ou utilisez votre propre fichier SVG
# marker = load_svg_marker('chemin/vers/votre/fichier.svg')

# Données d'exemple
x = np.linspace(-1, 1, 20)
y = np.sin(x)

# Utilisation du marqueur personnalisé
plt.figure(figsize=(10, 6))
plt.scatter(x, y, marker=marker, s=500)
plt.title("Graphique avec marqueur SVG personnalisé")
plt.show()

Avantages des marqueurs SVG personnalisés :

  • 🎨 Utilisez n'importe quel fichier SVG comme marqueur
  • 🔧 Plus de flexibilité pour créer vos propres designs
  • 📦 Tous les marqueurs français sont disponibles en SVG dans frenchplotlib/assets/
  • 🎯 Le marqueur est automatiquement centré et mis à l'échelle

Fichiers SVG disponibles :

  • baguette.svg, boule.svg, bretzel.svg, brioche.svg
  • camembert.svg, croissant.svg, eclair.svg, escargot.svg
  • fougasse.svg, fromage.svg, macaron.svg, madeleine.svg
  • pain_au_chocolat.svg, pain_de_mie.svg, pita.svg
  • religieuse.svg, vin.svg

Palettes de couleurs

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import tapisseries, dorures

# Données d'exemple
x = np.linspace(-1, 1, 20)
y = np.sin(x)

# Combinaison marqueur + palette de couleurs
plt.figure(figsize=(12, 6))
plt.scatter(x, y, c=y, marker=tapisseries.boule, s=1000, cmap=dorures.escargot_persil)
plt.colorbar(label='Valeurs')
plt.title("Visualisation à la française")
plt.show()

Styles graphiques prédéfinis

Appliquez un style complet à tous vos graphiques pour une ambiance française authentique :

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import styles

# Appliquer le style Côte d'Azur
styles.style_cote_azur()

# Créer des données
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# Tous les graphiques suivants auront le style appliqué
plt.figure(figsize=(10, 6))
plt.plot(x, y1, linewidth=3, label='Vague 1')
plt.plot(x, y2, linewidth=3, label='Vague 2')
plt.fill_between(x, y1, alpha=0.3)

plt.title('🌊 Les Vagues de la Méditerranée')
plt.xlabel('Distance (km)')
plt.ylabel('Amplitude (m)')
plt.legend()
plt.grid(True)
plt.show()

# Restaurer le style par défaut
styles.restaurer_style()

Styles disponibles :

  • styles.style_versailles() - 👑 Style royal et élégant avec tons dorés
  • styles.style_bistrot() - ☕ Ambiance chaleureuse de bistrot parisien
  • styles.style_cote_azur() - 🌊 Bleus méditerranéens lumineux
  • styles.style_provence() - 💜 Douceur pastel de la lavande provençale
  • styles.style_parisien() - 🗼 Élégance minimaliste noir et blanc
  • styles.style_tricolore() - 🇫🇷 Patriotique aux couleurs du drapeau
  • styles.style_bordeaux() - 🍷 Rouges profonds des vignobles
  • styles.style_belle_epoque() - 🎨 Art Nouveau et couleurs organiques
  • styles.restaurer_style() - Restaure le style matplotlib par défaut

🥐 Marqueurs disponibles (tapisseries)

  • baguette - Une baguette traditionnelle
  • pain_de_mie - Pain de mie
  • croissant - Croissant doré
  • pain_au_chocolat - Pain au chocolat (ou chocolatine 😉)
  • boule - Boule de pain
  • brioche - Brioche dorée
  • bretzel - Bretzel alsacien
  • fougasse - Fougasse provençale
  • pita - Pain pita
  • vin - Verre de vin
  • fromage - Morceau de fromage
  • eclair - Éclair au chocolat
  • macaron - Macaron parisien
  • camembert - Camembert de Normandie
  • madeleine - Madeleine de Proust
  • religieuse - Religieuse au chocolat
  • escargot - Escargot de Bourgogne

🎨 Palettes de couleurs (dorures)

Palettes gourmandes

  • pain_dore - Du blanc crème au brun doré
  • baguette_bien_cuite - Dégradé de cuisson parfaite
  • croissant_beurre - Or brillant et miel
  • fromage - Palette des fromages français
  • macaron - Couleurs pastel gourmandes

Palettes régionales

  • tricolore - Drapeau français (bleu, blanc, rouge)
  • lavande - Lavande de Provence
  • cote_azur - Mer et ciel méditerranéens
  • bourgogne - Couleurs d'automne bourguignonnes
  • versailles - Or et splendeur royale
  • nuit_parisienne - Bleu nuit et lumières dorées

Palettes viticoles

  • bordeaux - Du rosé au rouge profond
  • champagne - Pétillant et doré

Palettes spéciales

  • escargot_persil - Marron gris-vert
  • french_kiss - Rouge passionnel
  • je_m_en_fous - Gris perle élégant

📊 Exemples avancés

Combinaison style + marqueurs + couleurs

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import styles, tapisseries, dorures

# Appliquer un style complet
styles.style_versailles()

# Créer une visualisation élégante
fig, ax = plt.subplots(figsize=(12, 8))

x_scatter = np.random.rand(20) * 10
y_scatter = np.random.rand(20) * 2 - 1

# Utiliser marqueurs français avec le style appliqué
ax.scatter(x_scatter[:5], y_scatter[:5], marker=tapisseries.croissant, s=500, label='Croissants')
ax.scatter(x_scatter[5:10], y_scatter[5:10], marker=tapisseries.vin, s=500, label='Vin')
ax.scatter(x_scatter[10:15], y_scatter[10:15], marker=tapisseries.fromage, s=500, label='Fromage')

ax.set_title('👑 Délices Royaux de Versailles', fontsize=16)
ax.set_xlabel('Temps (heures)')
ax.set_ylabel('Satisfaction')
ax.legend()
ax.grid(True)

plt.show()

# Restaurer le style
styles.restaurer_style()

Graphique multi-marqueurs

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import tapisseries, dorures

fig, ax = plt.subplots(figsize=(12, 8))

# Différents marqueurs
marqueurs = [tapisseries.croissant, tapisseries.vin, tapisseries.fromage, tapisseries.macaron]
couleurs = ['#FFD700', '#8B0000', '#F5DEB3', '#FFB6C1']
labels = ['Croissant', 'Vin', 'Fromage', 'Macaron']

for i, (marker, color, label) in enumerate(zip(marqueurs, couleurs, labels)):
    x = np.random.randn(10) + i*2
    y = np.random.randn(10) + i
    ax.scatter(x, y, marker=marker, s=800, c=color, label=label, alpha=0.7)

ax.legend(loc='best')
ax.set_title('Les délices de France', fontsize=16)
plt.show()

Heatmap avec palette française

import matplotlib.pyplot as plt
import numpy as np
from frenchplotlib import dorures

# Données aléatoires
data = np.random.rand(10, 10)

plt.figure(figsize=(10, 8))
plt.imshow(data, cmap=dorures.tricolore, aspect='auto')
plt.colorbar(label='Intensité')
plt.title('Heatmap tricolore')
plt.show()

🛠️ Développement

Installation en mode développement

git clone https://github.com/PhilZPhaZ/frenchplotlib.git
cd frenchplotlib
pip install -e .

Structure du projet

frenchplotlib/
├── frenchplotlib/
│   ├── __init__.py
│   ├── tapisseries.py       # Marqueurs personnalisés prédéfinis
│   ├── dorures.py            # Palettes de couleurs
│   ├── styles.py             # Styles graphiques prédéfinis
│   ├── custom_marker.py      # Chargement de marqueurs SVG personnalisés
│   ├── converter.py          # Conversion de marqueurs
│   ├── tete.py               # Fonctionnalités de tête
│   └── assets/               # Fichiers SVG des marqueurs
│       ├── baguette.svg
│       ├── boule.svg
│       ├── croissant.svg
│       └── ...
├── example/                  # Exemples d'utilisation
│   ├── styles_demo.py        # Démonstration des styles
│   ├── style_simple.py       # Exemple simple de style
│   └── ...
├── setup.py
├── pyproject.toml
└── README.md

📄 Licence

Ce projet est sous licence MIT.

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer de nouvelles fonctionnalités
  • Ajouter de nouveaux marqueurs ou palettes
  • Améliorer la documentation

🙏 Remerciements

Merci à matplotlib pour son excellente bibliothèque de visualisation qui rend tout cela possible.


Créé avec ❤️ et 🥖 en France

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frenchplotlib-1.4.0.tar.gz (259.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

frenchplotlib-1.4.0-py3-none-any.whl (280.5 kB view details)

Uploaded Python 3

File details

Details for the file frenchplotlib-1.4.0.tar.gz.

File metadata

  • Download URL: frenchplotlib-1.4.0.tar.gz
  • Upload date:
  • Size: 259.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for frenchplotlib-1.4.0.tar.gz
Algorithm Hash digest
SHA256 b46700d06765bcbf5a8adc6b353838f8540659a2a582f911aadcf9878b2d27cf
MD5 1f2ab63a56572a1965c0f87f70a681be
BLAKE2b-256 a8be4bc0bd4ca6601b026f5bbbdc6c4fc474f4482b4703fcad3d3da3cd75ee4e

See more details on using hashes here.

File details

Details for the file frenchplotlib-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: frenchplotlib-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 280.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for frenchplotlib-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5939cbcd18064ba45f93ee0f8d3e5a7ba17edbe4b852fc3ea0e261a3cee49f4
MD5 4ab5285e4b2b54b0bc65ce1905a8871e
BLAKE2b-256 80c545885d1295239c28e0890b29f7e11aeb9a560cffaecd80f483b5fed2e1b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page