Indholdsfortegnelse:
Video: Data Camp 4. november 2010 2025
Scatterplots er særligt vigtige for datalogi, fordi de kan vise datamønstre, der ikke er indlysende, når de ses på andre måder. Du kan se datagrupperinger relativt nemt og hjælpe seeren med at forstå, hvornår data tilhører en bestemt gruppe. Du kan også vise overlapninger mellem grupper og endda demonstrere, når visse data er uden for det forventede interval. Viser disse forskellige former for relationer i dataene er en avanceret teknik, som du behøver at vide for at udnytte MatPlotLib bedst muligt.
Afbilder grupper
Farve er den tredje akse, når der arbejdes med en scatterplot. Ved hjælp af farve kan du markere grupper, så andre kan se dem med større lethed. Følgende eksempel viser, hvordan du kan bruge farve til at vise grupper inden for en scatterplot:
import numpy som np
import matplotlib. pyplot som plt
x1 = 5 * np. tilfældig. rand (50)
x2 = 5 * np. tilfældig. rand (50) + 25
x3 = 30 * np. tilfældig. rand (25)
x = np. concatenate ((x1, x2, x3))
y1 = 5 * np. tilfældig. rand (50)
y2 = 5 * np. tilfældig. rand (50) + 25
y3 = 30 * np. tilfældig. rand (25)
y = np. concatenate ((y1, y2, y3))
color_array = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
PLT. scatter (x, y, s = [50], markør = "D", c = color_array)
plt. show ()
Dette eksempel bruger en array til farverne. Den første gruppe er dog blå, efterfulgt af grøn til den anden gruppe. Eventuelle outliers vises i rødt.
Farvearrayer kan gøre scatterplot-grupperne bedre.Viser korrelationer
I nogle tilfælde skal du kende den generelle retning, dine data tager, når man ser på en scatterplot. Selvom du opretter en klar skildring af grupperne, er den egentlige retning, som dataene tager som helhed, muligvis ikke klar. I dette tilfælde tilføjer du en trendlinie til output. Her er et eksempel på at tilføje en trendlinie til en scatterplot, der indeholder grupper.
import numpy som np
import matplotlib. pyplot som plt
import matplotlib. pylab som plb
x1 = 15 * np. tilfældig. rand (50)
x2 = 15 * np. tilfældig. rand (50) + 15
x3 = 30 * np. tilfældig. rand (30)
x = np. concatenate ((x1, x2, x3))
y1 = 15 * np. tilfældig. rand (50)
y2 = 15 * np. tilfældig. rand (50) + 15
y3 = 30 * np. tilfældig. rand (30)
y = np. concatenate ((y1, y2, y3))
color_array = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
plt. scatter (x, y, s = [90], markør = "*", c = color_array)
z = np. polyfit (x, y, 1)
p = np. poly1d (z)
PLB. plot (x, p (x), 'm -')
plt.show ()
Tilføjelse af en trendlinie betyder at kalde NumPy
polyfit ()
-funktionen med dataene, som returnerer en vektor af koefficienter,
p
, der minimerer mindst kvadraterfejlen. Mindst kvadratisk regression er en metode til at finde en linje, der opsummerer forholdet mellem to variabler,
x
og
y
i dette tilfælde, i det mindste inden for domænet af forklaringsvariablen
x
. Den tredje
polyfit ()
parameter udtrykker graden af polynomisk pasform.
Vektorudgangen på
polyfit ()
bruges som input til
poly1d ()
, som beregner de faktiske y-akse datapunkter. Opkaldet til
plot ()
skaber trendlinjen på scatterplot.