Gegevensvisualisatie is één van de beste manieren (indien niet de beste manier) voor gegevensanalisten en gegevenswetenschappers om complexe informatie weer te geven en betekenisvolle inzichten te genereren. Om het meeste uit je kans te halen om met belanghebbenden te communiceren, heb ik nuttige informatie verzameld over Matplotlib kleurenpaletten.
Zoals je in dit artikel zult zien, is Matplotlib een uiterst veelzijdige en uitbreidbare visualisatiebibliotheek in Python. Het biedt elke optie, van eenvoudige grafieken tot volledig interactieve visuals. Als je niet over het algemeen bekend bent met Python, raad ik je aan om in te schrijven voor onze Introductie tot Python cursus voordat we beginnen, om zijn basis te begrijpen. Persoonlijk hou ik ook de Python Spiekbrief bij de hand, omdat het een nuttige referentie is voor veelgebruikte functies.
Het kiezen van de juiste Matplotlib kleurenpalet
Una de las primeras cosas a considerar es decidir entre colormaps secuenciales, divergentes o categóricos. Otros factores importantes a considerar al elegir colormaps incluyen la uniformidad perceptual, es decir, que las diferencias iguales en los valores de los datos se perciban como diferencias iguales en el color, y utilizar opciones de colormaps amigables para daltónicos para hacer que sus visuales sean accesibles para todas las audiencias.
También debe considerar diferentes estándares de dominio al elegir colormaps. Por ejemplo, diferentes tonos de azul representan diferentes profundidades de agua en estudios oceanográficos. Si no está seguro sobre el colormap adecuado para su visualización, hay disponibles diferentes herramientas y recursos para guiarlo. En particular, nuestro propio curso Introducción a la Visualización de Datos con Matplotlib le ayuda a trabajar a través de muchos escenarios.
Diferentes Colormaps en Matplotlib
En Python, el módulo matplotlib.colormaps
proporciona acceso a los colormaps integrados, lo que le ayuda a seleccionar el esquema más adecuado para su proyecto. A continuación se presentan las categorías más comunes de opciones:
Colormaps secuenciales
Opvolgende kleurenkaarten geven geordelde gegevens weer die van lage naar hoge waarden overgaan. Ze过渡 van lichte naar donkere tinten, waardoor de gegevensgrootte op verschillende niveaus wordt weergegeven. Een voorbeeld van een opvolgende kleurenkaart is in warmtekaarten voor temperatuurgegevens, waar lichtere kleuren koelere temperaturen vertegenwoordigen en donkere tinten warmere temperaturen.
Stel dat je een gegevensset hebt met kolommen voor datum en temperatuur. De volgende code zal een warmtekaart maken voor de temperatuur.
# Importeer benodigde bibliotheken import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.colors as mcolors # Stapel 1: Haal maand- en daginformatie uit de datumkolom calendar_data = temperature_data.copy() # Maak een kopie om mee te werken calendar_data['Month'] = calendar_data['Date'].dt.strftime('%B') calendar_data['Day'] = calendar_data['Date'].dt.day # Stapel 2: Definieer de volgorde van maanden voor een natuurlijke kalendersequentie month_names = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] # Converteer de 'Maand' kolom naar een categorische type met de specifieke volgorde calendar_data['Month'] = pd.Categorical(calendar_data['Month'], categories=month_names, ordered=True) # Stapel 3: Pivoteer de gegevens om een gestructureerde tabel voor de warmtekaart te maken monthly_temperature_table = calendar_data.pivot(index='Month', columns='Day', values='Temperature') # Stapel 4: Stel het plot in voor de warmtekaart plt.figure(figsize=(12, 8)) # Definieer een aangepaste normalisatie voor het temperatuurbereik (optioneel) norm = mcolors.Normalize(vmin=15, vmax=35) # Maak de warmtekaart met een sequentiële kleurenkaart heatmap = plt.imshow(monthly_temperature_table, cmap='YlOrRd', aspect='auto', norm=norm) # Voeg een kleurenbalk toe om de temperatuur weer te geven colorbar = plt.colorbar(heatmap, orientation='horizontal') colorbar.set_label('Temperature (°C)', labelpad=10) # Label de assen plt.xlabel('Day of the Month') plt.ylabel('Month') # Stel y-ticks in om maandnamen in plaats van getallen weer te geven plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # Voeg een titel toe aan de warmtekaart plt.title('Monthly Temperature Heatmap (Sequential Colormap)') # Toon het plot plt.grid(False) plt.show()
Matplotlib sequentiële kleurenkaarten visualisatievoorbeeld. Afbeelding door Auteur
Divergerende kleurenkaarten
Verwijkende kleurenkaarten benadrukken gegevens met afwijkingen van een centrale waarde in beide richtingen. De verwijkende kleurenkaarten hebben contrastkleuren voor de positieve en negatieve richtingen. Een veelvoorkomende toepassing van verwijkende kleurenkaarten is in financiële gegevens om winst en verlies weer te geven.
# Stel 'Month' in als index profit_loss_df.set_index('Month', inplace=True) # Stel de figuurafmeting in plt.figure(figsize=(8, 4)) # Maak een verwijkende kleurenkaart cmap = plt.cm.RdYlGn # Toon de gegevens als een warmtekaart met imshow im = plt.imshow(profit_loss_df.T, cmap=cmap, aspect='auto', vmin=-np.max(np.abs(profit_loss_data)), vmax=np.max(np.abs(profit_loss_data))) # Voeg een kleurenbalk toe met label cbar = plt.colorbar(im) cbar.set_label('Profit/Loss ($)') # Voeg annotaties toe aan elke cel for i, month in enumerate(profit_loss_df.index): plt.text(i, 0, f'{profit_loss_df.loc[month, "Profit/Loss"]:.2f}', ha='center', va='center', color='black') # Stel de x-as en y-as labels en haken in plt.xlabel('Month') plt.ylabel('') # Geen label nodig voor de y-as plt.xticks(ticks=range(len(profit_loss_df.index)), labels=profit_loss_df.index, rotation=45) plt.yticks([]) # Verberg y-as haken, aangezien we slechts één rij hebben # Voeg een titel toe plt.title('Profit/Loss Heatmap (Diverging Colormap)') # Pas de lay-out aan voor een betere weergave plt.tight_layout() # Laat de grafiek zien plt.show()
Matplotlib verwijkende kleurenkaart visualisatievoorbeeld. Afbeelding door Auteur.
Cyclische kleurenpaletten
Cyclische kleurenpaletten zijn nuttig voor het visualiseren van gegevens die een herhalend of cyclisch patroon vertegenwoordigen, zoals hoeken, golfphasen of tijd van de dag. Een voorbeeld van een cyclische kleurenpalet in actie is het visualiseren van de fasen van een periodieke functie, zoals een sinusgolf.
# Maak gegevens voor een sinusgolf x = np.linspace(0, 2 * np.pi, 100) # X-waarden van 0 tot 2π (een complete cyclus) y = np.sin(x) # Y-waarden (sinus van X) # Maak een figuur en as plt.figure(figsize=(10, 6)) # Maak een scatterplot met een cyclische kleurenpalet # Kleur punten door hun positie in de sinusgolfcyclus points = plt.scatter(x, y, c=x, cmap='twilight', edgecolor='black') # Voeg een kleurenbalk toe om de golfphase weer te geven cbar = plt.colorbar(points) cbar.set_label('Wave Phase (Radians)', rotation=270, labelpad=15) # Label de assen plt.xlabel('Angle (Radians)') plt.ylabel('Sine Value') # Voeg een titel toe plt.title('Sine Wave with Cyclic Colormap (Twilight)') # Toon de grafiek plt.grid(True) plt.show()
Matplotlib cyclische kleurenpalet visualisatievoorbeeld. Afbeelding door Auteur.
Kwalitatieve kleurenpaletten
Kwalitatieve kleurenwielkaarten zijn ideaal om categorische gegevens weer te geven zonder specifieke volgorde van de categorieën. Een veelvoorkomend gebruik van kwalitatieve kleurenwielkaarten is een taartdiagram waarbij elk segment een andere categorie vertegenwoordigt die gemakkelijk te onderscheiden is.
# Voorbeeld van categorische gegevens categories = ['Category A', 'Category B', 'Category C', 'Category D', 'Category E'] values = [20, 35, 25, 10, 10] # Stel de figuurgrootte in plt.figure(figsize=(8, 8)) # Definieer een kwalitatieve kleurenwielkaart handmatig colors = ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3'] # Handmatig geselecteerde kleur hex-codes # Maak een taartdiagram plt.pie(values, labels=categories, autopct='%1.1f%%', startangle=90, colors=colors) # Een gelijke aspectverhouding zorgt ervoor dat de taart als een cirkel wordt getekend plt.axis('equal') # Voeg een titel toe plt.title('Pie Chart with Qualitative Colormap') # Toon de grafiek plt.show()
Matplotlib kwalitatieve kleurenwielkaart visualisatievoorbeeld. Afbeelding door Auteur.
Regenboog kleurenwielkaarten
Regenboog kleurenwielkaarten zoals hsv
worden gebruikt wanneer een breed scala aan tinten nodig is.
# Genereer cyclische gegevens x = np.linspace(0, 2 * np.pi, 500) y = np.sin(x) # Maak een grafiek met regenboogkleurenpalet plt.scatter(x, y, c=x, cmap='hsv', s=50) # Voeg een kleurenbalk toe plt.colorbar(label='Phase') # Voeg labels en titel toe plt.xlabel('Angle (radians)') plt.ylabel('Sine Value') plt.title('Cyclic Data Visualization using HSV Colormap') # Toon de grafiek plt.show()
Matplotlib regenboogkleurenpalet visualisatievoorbeeld. Afbeelding door Auteur.
Perceptueel uniforme kleurenpaletten
Kleurenpaletten zoals inferno
en plasma
bieden betere zichtbaarheid over verschillendeweergave medium.
# Genereer synthetische hoogtegegevens x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) * 100 # Hoogtegegevens # Plot de hoogtegegevens met behulp van het 'plasma' kleurenpalet plt.contourf(X, Y, Z, cmap='plasma') # Voeg een kleurenbalk toe plt.colorbar(label='Elevation (m)') # Voeg titel en labels toe plt.title('Topographic Map (Plasma Colormap)') plt.xlabel('X Coordinate') plt.ylabel('Y Coordinate') # Toon de grafiek plt.show()
Matplotlib perceptueel uniforme kleurenkaart visualisatievoorbeeld. Afbeelding door Auteur.
Creëren en Aanpassen van Matplotlib Kleurenkaarten
Hoewel Matplotlib een breed scala aan ingebouwde kleurenkaarten heeft, zijn er situaties waarin je je kleuren wilt aanpassen. De belangrijkste hulpmiddelen voor het maken van aangepaste kleurenkaarten in Matplotlib zijn ListedColormap
en LinearSegmentedColormap
.
Creëren van een aangepaste kleurenkaart met ListedColormap
ListedColormap
stelt je in staat om een kleurenkaart te maken van een lijst van specifieke kleuren. Deze methode is handig wanneer je specifieke kleuren wilt toewijzen aan verschillende categorieën in categorische gegevens.
from matplotlib.colors import ListedColormap # Categorische data categories = ['Category A', 'Category B', 'Category C', 'Category D'] values = [25, 40, 35, 30] # Aangepaste kleurenlijst voor de kleurenkaart (bijvoorbeeld tinten blauw, groen, rood en paars) custom_colors = ['#1f77b4', '#2ca02c', '#d62728', '#9467bd'] # Maak een ListedColormap met de aangepaste kleuren custom_cmap = ListedColormap(custom_colors) # Stel de figuurgrootte in plt.figure(figsize=(8, 6)) # Maak een staafdiagram met de aangepaste kleurenkaart bars = plt.bar(categories, values, color=custom_cmap.colors) # Voeg een titel toe plt.title('Bar Chart with Custom ListedColormap') # Label de assen plt.xlabel('Categories') plt.ylabel('Values') # Toon de grafiek plt.show()
Matplotlib aangepaste kleurenkaart met ListedColormap. Afbeelding door Auteur.
Het maken van een aangepaste kleurenkaart met LinearSegmentedColormap
LinearSegmentedColormap
stelt je in staat om kleurenkaarten te maken die soepel tussen kleuren overgaan. Dit is de moeite waard om te weten omdat continue data vaak een verloop van kleuren vereist. Hier specificeer ik ook het aantal intervallen dat ik wil voor mijn visual.
from matplotlib.colors import LinearSegmentedColormap # Maak een grid van waarden voor een 2D Gaussian functie x = np.linspace(-2, 2, 500) y = np.linspace(-2, 2, 500) X, Y = np.meshgrid(x, y) Z = np.exp(- (X**2 + Y**2)) # Definieer een aangepaste kleurenpalet die overgaat van blauw naar wit naar rood colors = ['blue', 'white', 'red'] custom_cmap = LinearSegmentedColormap.from_list('blue_white_red', colors) # Pas het aantal kleurklassen aan (discrete niveaus) # Specificeer het aantal niveaus (bijv. 10 voor 10 afzonderlijke kleurbanden) num_classes = 10 levels = np.linspace(Z.min(), Z.max(), num_classes) # Stel de figuurgrootte in plt.figure(figsize=(8, 6)) # Plot de 2D Gaussian functie met de aangepaste kleurenpalet contour = plt.contourf(X, Y, Z, levels=levels, cmap=custom_cmap) # Voeg een kleurenbalk toe om de discrete kleurklassen weer te geven plt.colorbar(contour, label='Gaussian Function Value') # Voeg labels toe voor de assen plt.xlabel('X') plt.ylabel('Y') # Voeg een titel toe plt.title(f'2D Gaussian with {num_classes} Discrete Color Classes') # Toon de plot plt.show()
Matplotlib aangepaste aanpassing van het aantal kleurklassen. Afbeelding door Auteur.
Kleurbereiken en intensiteit aanpassen
Je kunt de intensiteit of het bereik van kleuren in een bestaande kleurenpalet beheren door de normalisatie te manipuleren of het te snijden om een subset van de beschikbare kleuren te gebruiken. In het volgende voorbeeld zijn de kleurenbereiken gesneden om temperaturen tussen 16 en 40 graden Celsius weer te geven.
# Stel het plot in voor de warmtekaart plt.figure(figsize=(12, 8)) # Definieer een aangepaste normalisatie voor het temperatuurbereik norm = mcolors.Normalize(vmin=16, vmax=40) # Maak de warmtekaart met een sequentiële kleurenpalet heatmap = plt.imshow(monthly_temperature_table, cmap='YlOrRd', aspect='auto', norm=norm) # Voeg een kleurenbalk toe om de temperatuur weer te geven colorbar = plt.colorbar(heatmap, orientation='horizontal') colorbar.set_label('Temperature (°C)', labelpad=10) # Label de assen plt.xlabel('Day of the Month') plt.ylabel('Month') # Stel de y-ticks in om maandnamen in plaats van getallen weer te geven plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # Voeg een titel toe aan de warmtekaart plt.title('Monthly Temperature Heatmap (Sequential Colormap)') # Toon het plot plt.grid(False) plt.show()
Matplotlib aanpassen van kleurenbereiken en intensiteit. Afbeelding door Auteur.
Combineren van bestaande kleurenpaletten
U kunt ook bestaande kleurenkaarten combineren door meerdere kleurenkaarten te mengen om complexere visualisaties te maken.
from matplotlib.colors import LinearSegmentedColormap, Normalize # Maak synthetische hoogtegegevens x = np.linspace(-180, 180, 500) # Lengtegraad y = np.linspace(-90, 90, 250) # Breedtegraad X, Y = np.meshgrid(x, y) Z = 5000 * np.sin(np.sqrt(X**2 + Y**2) * np.pi / 180) # Synthetische hoogtegegevens # Definieer de basis kleurenkaarten ('viridis' en 'cividis') cmap1 = plt.get_cmap('viridis') cmap2 = plt.get_cmap('cividis') # Maak een aangepaste kleurenkaart door de twee basis kleurenkaarten te mengen def blend_colormaps(cmap1, cmap2, blend_ratio=0.5): """Blend two colormaps together.""" c1 = cmap1(np.linspace(0, 1, 256)) c2 = cmap2(np.linspace(0, 1, 256)) blended_colors = (1 - blend_ratio) * c1 + blend_ratio * c2 return LinearSegmentedColormap.from_list('blended_cmap', blended_colors) # Maak de gemengde kleurenkaart custom_cmap = blend_colormaps(cmap1, cmap2, blend_ratio=0.5) # Normaliseer de gegevens voor visualisatie norm = Normalize(vmin=-5000, vmax=5000) # Stel de figuur grootte in plt.figure(figsize=(12, 6)) # Plot de synthetische hoogtegegevens met de gemengde kleurenkaart contour = plt.contourf(X, Y, Z, levels=100, cmap=custom_cmap, norm=norm) # Voeg een kleurenbalk toe om de gemengde kleurenweergave te tonen plt.colorbar(contour, label='Elevation (meters)') # Voeg labels toe voor de assen plt.xlabel('Longitude') plt.ylabel('Latitude') # Voeg een titel toe plt.title('Geographical Elevation Data with Blended Colormap (Viridis + Cividis)') # Toon de grafiek plt.show()
Matplotlib Combineren van bestaande kleurenschalen. Afbeelding door de auteur.
Omgekeerde kleurenschalen gebruiken met de achtervoegsel _r
Je kunt elke kleurenschaal in Matplotlib omkeren door de achtervoegsel _r
aan de naam toe te voegen.
# Stel het plot in voor de warmtekaart plt.figure(figsize=(12, 8)) # Maak een aangepaste normalisatie voor het kleurenbereik norm = mcolors.Normalize(vmin=16, vmax=40) # Plot de warmtekaart met behulp van imshow en de sequentiële kleurenschaal im = plt.imshow(monthly_temperature_table, cmap='YlOrRd_r', norm=norm, aspect='equal') # Voeg een kleurenbalk toe met een horizontale orientatie cbar = plt.colorbar(im, orientation='horizontal', pad=0.1) cbar.set_label('Temperature (°C)', labelpad=10) # Voeg labels toe voor de assen plt.xlabel('Day of the Month') plt.ylabel('Month') # Stel de y-ticks in om maandnamen in plaats van getallen weer te geven plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # Voeg een titel toe plt.title('Temperature Heatmap (Sequential Colormap)') # Toon het plot plt.show()
Matplotlib Omgekeerde kleurenschalen gebruiken met de achtervoegsel _r. Afbeelding door de auteur.
Omgaan met veelvoorkomende fouten in Matplotlib kleurenschalen
Bij het werken met kleurenpaletten in Matplotlib kun je fouten tegenkomen die je workflow beïnvloeden. Hieronder staan enkele van deze fouten en hoe je ze kunt oplossen.
AttributeError: module ‘matplotlib’ has no attribute ‘colormaps’
Deze fout treedt op wanneer je Matplotlib-versies voor 3.4.0 gebruikt om matplotlib.colormaps
te benaderen. Het colormaps-attribuut werd geïntroduceerd in Matplotlib 3.4.0. Controleer eerst je Matplotlib-versie met behulp van de onderstaande code om deze fout op te lossen.
import matplotlib print(matplotlib.__version__)
Upgrade met behulp van het volgende pip-commando.
pip install --upgrade matplotlib
Als je problemen ondervindt bij het upgraden van je Matplotlib-versie, probeer dan de volgende methode om toegang te krijgen tot kleurenpaletten.
plt.get_cmap('viridis') # in plaats van matplotlib.colormaps['viridis']
Foutieve kleuraanwijzingen
Je kunt onjuiste kleuraanwijzingen ervaren wanneer je een waarde buiten het verwachte bereik doorgeeft of wanneer de kleurenkaart onjuist wordt toegepast. Onjuiste kleuraanwijzing kan ook ontstaan als de kleurenkaart bedoeld is voor continue gegevens, maar wordt toegepast op categorische gegevens of vice versa.
Om ervoor te zorgen dat je gegevens binnen het verwachte bereik liggen, normaliseer of schaal ze altijd met behulp van de vmax
en vmin
parameters.
import matplotlib.colors as mcolors # Maak een voorbeeld temperatuurgegevensset data = np.random.rand(10, 10) * 100 # Pas het bereik aan om overeen te komen met je gegevens # Maak een kleurnormalisatie instantie om de gegevens op te schalen naar het bereik van de kleurenkaart norm = mcolors.Normalize(vmin=0, vmax=100) # Maak een warmtekaart met de 'viridis' kleurenkaart en de opgegeven normalisatie plt.imshow(data, cmap='viridis', norm=norm, interpolation='nearest') plt.colorbar() plt.show()
Voor fijnere controle kun je de kleurgrenzen expliciet definiëren met behulp van de boundaries
of norm
parameters in de plotfuncties.
Visuele artefacten en onverwachte resultaten
Bij het werken met discrete of lage resolutiegegevens, kunt u ongewenste kleurbanden, excessief contrast of kleurverspreiding ervaren. Dit probleem treedt op wanneer uw gegevens een beperkt bereik hebben, maar worden weergegeven met een continue kleurenkaart.
Om dit probleem op te lossen, gebruik meer gegevenspunten of pas het aantal kleurniveaus aan om de overgangen glad te maken.
# Verhoog het aantal binnenvelden in de kleurenkaart cmap = plt.get_cmap('viridis', 256) plt.imshow(data, cmap=cmap)
U kunt de kleurenkaart opdelen in vaste niveaus om discrete gegevens op de juiste manier te behandelen.
cmap = plt.get_cmap('inferno', 10) # Verdeel de kleurenkaart in 10 discrete niveaus plt.imshow(data, cmap=cmap)
U kunt ook de weergave-instellingen controleren en de resolutie aanpassen, vooral wanneer u de visualisaties opslaat om te voorkomen dat er lage resolutie grafieken ontstaan
plt.savefig('plot.png', dpi=300) # Sla de figuur op met een hogere resolutie
Kleurdistortie door afknippen
Kleurdistorsie treedt op wanneer gegevens extreme waarden bevatten buiten het verwachte kleurenbereik. Dit veroorzaakt dat delen van de gegevens afgesneden worden en toegewezen krijgen de minste of meeste kleur in de kleurenkaart.
Om kleurdistorsie te voorkomen, pas de kleurlimieten aan met vmin
en vmax
om overeen te komen met het bereik van je gegevens, waardoor afsnijding voorkomen wordt.
plt.imshow(data, cmap='plasma', vmin=0, vmax=100)
Je zou ook robuuste schaling moeten gebruiken om uitschieters te behandelen door aangepaste limieten in te stellen die extreme waarden uitsluiten.
import numpy as np robust_vmin, robust_vmax = np.percentile(data, [2, 98]) # Gebruik percentielen om extreme uitschieters te verwijderen plt.imshow(data, cmap='inferno', vmin=robust_vmin, vmax=robust_vmax)
Kleurenkaart wordt niet correct weergegeven in 3D-graphics
Als er een probleem is met hoe gegevens in de 3D-oppervlakte worden gekoppeld, kunnen kleurenkaarten mogelijk niet correct worden weergegeven in de 3D-visualisaties. Om dit op te lossen, zorg ervoor dat de z-asgegevens genormaliseerd zijn om binnen het verwachte bereik van de kleurenkaart te passen. Gebruik ook de juiste kleurenkaartlimieten om het volledige bereik van de z-waarden te vangen.
from mpl_toolkits.mplot3d import Axes3D # Genereer voorbeeldgegevens voor een 3D-vlakplot X, Y = np.meshgrid(np.linspace(-5, 5, 50), np.linspace(-5, 5, 50)) Z = np.sin(np.sqrt(X**2 + Y**2)) # Maak een 3D-assenobject ax = plt.axes(projection='3d') # Plot het oppervlak met de 'viridis'-kleurvorm en pas de kleurlimieten aan ax.plot_surface(X, Y, Z, cmap='viridis', vmin=np.min(Z), vmax=np.max(Z)) plt.show()
Conclusie
Het kiezen van de juiste kleurvorm is een belangrijke stap omdat deze van invloed is op hoe gebruikers uw gegevens zien en begrijpen. Naar mijn mening is het een grote fout om veel tijd te besteden aan data-analyse terwijl je slordig bent in de laatste stap, het deel waarin je je bevindingen communiceert.
Gelukkig biedt Matplotlib veel opties om ervoor te zorgen dat je visuals een boeiend verhaal vertellen. Schrijf u in voor onze cursus Inleiding tot datavisualisatie met Matplotlib om een expert te worden. Als je een Python-gebruiker bent die ook Seaborn gebruikt voor visualisatie (het is geweldig om beide te kennen), lees dan onze Snelle handleiding voor het kiezen van kleuren in Seaborn en volg deze op met onze Inleiding tot datavisualisatie met Seaborn cursus.
Source:
https://www.datacamp.com/tutorial/matplotlib-colormaps