Hoewel grafieken die de relatie tussen twee variabelen zoals lengte en gewicht laten zien, eenvoudig op een plat scherm kunnen worden geplot, zoals hieronder wordt weergegeven, wordt het echt rommelig als we meer dan twee parameters hebben.
Dat is wanneer mensen proberen over te schakelen naar 3D-plots, maar deze zijn vaak verwarrend en onhandig, wat het hele doel van gegevensvisualisatie tenietdoet. We hebben heatmaps nodig voor visuals.
Wat zijn heatmaps?
Als je naar het beeld van een thermische camera kijkt, zie je een letterlijke heatmap. Warmtebeeldcamera vertegenwoordigt verschillende temperaturen als verschillende kleuren. Het kleurschema spreekt onze intuïtie aan dat rood een 'warme kleur' is en blauw en zwart gebruikt om koude oppervlakken weer te geven.
Deze weergave van Mars is een heel goed voorbeeld waar de koude gebieden blauw van kleur zijn, terwijl de warmere gebieden grotendeels rood en geel zijn. De kleurenbalk in de afbeelding laat zien welke kleur voor welke temperatuur staat.
Met matplotlib kunnen we een punt (x,y) in de grafiek associëren met een specifieke kleur die de variabele vertegenwoordigt die we proberen te visualiseren. Het hoeft geen temperatuur te zijn, het kan elke andere variabele zijn. We zullen ook een weergeven kleuren balk ernaast om gebruikers aan te geven wat verschillende kleuren betekenen.
Vaak zie je mensen kleurenkaarten noemen in plaats van heatmaps. Deze worden vaak door elkaar gebruikt. Kleurenkaart is een meer algemene term.
Matplotlib en gerelateerde pakketten installeren en importeren
Om met Matplotlib aan de slag te gaan, moet je ervoor zorgen dat Python (bij voorkeur Python 3 en pip) is geïnstalleerd. Je hebt ook nodig numpy, pittig en panda's werken met datasets. Aangezien we een eenvoudige functie gaan plotten, slechts twee van de pakketten numpy en matplotlib zal nodig zijn.
$ pip install matplotlib numpy#of als je zowel python twee als drie hebt geïnstalleerd
$ pip3 matplotlib numpy installeren
Nadat u de bibliotheken hebt geïnstalleerd, moet u ervoor zorgen dat ze in uw python-programma zijn geïmporteerd.
importeer numpy als npmatplotlib importeren.pyplot als plt
Nu kunt u de functies gebruiken die door deze bibliotheken worden geleverd door syntaxis te gebruiken zoals np.numpyfunctie()
en plt.een andere functie().
Een paar voorbeelden
Laten we beginnen met het plotten van een eenvoudige wiskundige functie die punten op een vlak neemt (hun x- en y-coördinaten) en er een waarde aan toekent. De onderstaande schermafbeelding toont de functie samen met de plot.
De verschillende kleuren vertegenwoordigen verschillende waarden (zoals aangegeven door de schaal naast de plot). Laten we eens kijken naar de code die kan worden gebruikt om dit te genereren.
importeer numpy als npmatplotlib importeren.pyplot als plt
# Wiskundige functie die we moeten plotten
def z_func(x, y):
rendement (1 - (x ** 2 + y ** 3)) * np.exp(-(x ** 2 + y ** 2) / 2)
# Invoerwaarden instellen
x = np.bereik(-3.0, 3.0, 0.1)
y = np.bereik(-3.0, 3.0, 0.1)
X, Y = np.meshraster(x, y)
# Berekenen van de output en opslaan in de array Z
Z = z_func(X, Y)
im = plt.imshow(Z, cmap=plt.cm.RdBu, omvang=(-3, 3, 3, -3), interpolatie='bilineair')
plt.kleurenbalk (im);
plt.titel('$z=(1-x^2+y^3) e^-(x^2+y^2)/2$')
plt.tonen()
Het eerste dat opvalt, is dat we alleen matplotlib importeren.pyplot een klein deel van de hele bibliotheek. Omdat het project vrij oud is, heeft het in de loop der jaren veel dingen verzameld. Bijvoorbeeld matplotlib.pyplot was vroeger populair, maar is nu slechts een historisch overblijfsel en het importeren ervan voegt alleen maar meer bloat toe aan je programma.
Vervolgens definiëren we de wiskundige functie die we willen plotten. Het heeft twee waarden (x,y) en geeft de derde waarde z. We hebben de functie gedefinieerd die nog niet is gebruikt.
De volgende sectie neemt de taak op zich om een reeks invoerwaarden te maken, daarvoor gebruiken we numpy, hoewel u de ingebouwde bereik() functie ervoor als je wilt. Zodra de lijst met x- en y-waarden is opgesteld (variërend van min 3 tot 3), berekenen we de z-waarde ervan.
Nu we onze inputs en outputs hebben berekend, kunnen we de resultaten plotten. De plt.imshow() vertelt python dat de afbeelding betrekking zal hebben op Z, wat onze uitvoervariabele is. Er staat ook dat het een kleurenkaart gaat worden, een cmap, met Rood Blauw (RdBu) schaal loopt van -3 tot 3 op beide assen. De interpolatie parameter maakt de grafiek kunstmatig vloeiender. Anders zou je afbeelding er nogal korrelig en grof uitzien.
Op dit punt wordt de grafiek gemaakt, alleen niet afgedrukt. We voegen vervolgens de kleurenbalk aan de zijkant toe om verschillende waarden van Z te correleren met verschillende kleuren en vermelden de vergelijking in de titel. Deze worden in stappen gedaan plt.kleurenbalk (im) en plt.titel (… ). Ten slotte toont het aanroepen van de functie ons de grafiek op het scherm.
Herbruikbaarheid
U kunt de bovenstaande structuur gebruiken om elke andere 2D-kleurenkaart te plotten. Je hoeft je niet eens aan wiskundige functies te houden. Als u enorme hoeveelheden gegevens in uw bestandssysteem hebt, misschien informatie over een bepaalde demografie of andere statistische gegevens, kunt u die aansluiten door de X, Y waarden zonder de kleurenkaartsectie te wijzigen.
Ik hoop dat je dit artikel nuttig vond en als je van vergelijkbare inhoud houdt, laat het ons dan weten.