Python- tutoriaal

Python TUIS Python Intro Python Begin Python-sintaksis Python-kommentaar Python veranderlikes Python-datatipes Python-nommers Python Casting Python Strings Python Booleans Python-operateurs Python-lyste Python Tuples Python-stelle Python Woordeboeke Python As...Anders Python While Loops Python vir lusse Python-funksies Python Lambda Python-skikkings Python-klasse/-voorwerpe Python Erfenis Python Iterators Python-omvang Python-modules Python-datums Python Wiskunde Python JSON Python RegEx Python PIP Python Probeer ... Behalwe Python-gebruikersinvoer Python String Formatering

Lêerhantering

Python-lêerhantering Python Lees lêers Python Skryf/skep lêers Python verwyder lêers

Python-modules

NumPy Tutoriaal Panda Walkthrough Scipy Tutoriaal

Python Matplotlib

Matplotlib Intro Matplotlib Begin Matplotlib Pyplot Matplotlib Plotte Matplotlib Merkers Matplotlib-lyn Matplotlib-etikette Matplotlib-rooster Matplotlib Subplotte Matplotlib Scatter Matplotlib Bars Matplotlib Histogramme Matplotlib sirkeldiagramme

Masjienleer

Aan die gang kom Gemiddelde mediaanmodus Standaard afwyking Persentiel Dataverspreiding Normale dataverspreiding Strooi plot Lineêre regressie Polinoomregressie Meervoudige regressie Skaal Trein/toets Besluitboom

Python MySQL

MySQL Begin MySQL Skep databasis MySQL Skep tabel MySQL-insetsel MySQL Kies MySQL Waar MySQL Bestel deur MySQL verwyder MySQL Drop Table MySQL-opdatering MySQL-limiet MySQL Sluit aan

Python MongoDB

MongoDB Begin MongoDB Skep databasis MongoDB Skep versameling MongoDB-insetsel MongoDB Vind MongoDB-navraag MongoDB Sorteer MongoDB verwyder MongoDB Drop Collection MongoDB-opdatering MongoDB-limiet

Python-verwysing

Python Oorsig Python ingeboude funksies Python-stringmetodes Python Lys Metodes Python Woordeboek Metodes Python Tuple Metodes Python Stel metodes Python-lêermetodes Python sleutelwoorde Python-uitsonderings Python Woordelys

Moduleverwysing

Ewekansige module Versoeke Module Statistiek Module Wiskunde Module cMath-module

Python Hoe om

Verwyder lys duplikate Draai 'n snaar om Voeg twee getalle by

Python voorbeelde

Python voorbeelde Python-samesteller Python-oefeninge Python Vasvra Python-sertifikaat

Matplotlib Scatter


Die skep van spreidingsplotte

Met Pyplot kan jy die scatter()funksie gebruik om 'n spreidingsdiagram te teken.

Die scatter()funksie teken een kolletjie vir elke waarneming. Dit benodig twee skikkings van dieselfde lengte, een vir die waardes van die x-as, en een vir waardes op die y-as:

Voorbeeld

'n Eenvoudige verspreidingsdiagram:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])

plt.scatter(x, y)
plt.show()

Resultaat:

Die waarneming in die voorbeeld hierbo is die resultaat van 13 motors wat verbyry.

Die X-as wys hoe oud die motor is.

Die Y-as wys die spoed van die motor wanneer dit verbyry.

Is daar enige verwantskappe tussen die waarnemings?

Dit blyk dat hoe nuwer die kar is, hoe vinniger ry hy, maar dit kan toevallig wees, ons het immers net 13 motors geregistreer.


Vergelyk erwe

In die voorbeeld hierbo blyk daar 'n verband tussen spoed en ouderdom te wees, maar wat as ons die waarnemings van 'n ander dag ook plot? Sal die verstrooiingsplot ons iets anders vertel?

Voorbeeld

Teken twee plotte op dieselfde figuur:

import matplotlib.pyplot as plt
import numpy as np

#day one, the age and speed of 13 cars:
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y)

#day two, the age and speed of 15 cars:
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y)

plt.show()

Resultaat:

Let wel: Die twee plotte is geteken met twee verskillende kleure, by verstek blou en oranje, jy sal later in hierdie hoofstuk leer hoe om kleure te verander.

Deur die twee plotte te vergelyk, dink ek dit is veilig om te sê dat hulle albei vir ons dieselfde gevolgtrekking gee: hoe nuwer die motor, hoe vinniger ry hy.



Kleure

Jy kan jou eie kleur vir elke verstrooiingsplot stel met die colorof die c argument:

Voorbeeld

Stel jou eie kleur van die merkers:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')

x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')

plt.show()

Resultaat:


Kleur elke kolletjie in

Jy kan selfs 'n spesifieke kleur vir elke punt stel deur 'n verskeidenheid kleure as waarde vir die cargument te gebruik:

Let wel: Jy kan nie die colorargument hiervoor gebruik nie, net die cargument.

Voorbeeld

Stel jou eie kleur van die merkers:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array(["red","green","blue","yellow","pink","black","orange","purple","beige","brown","gray","cyan","magenta"])

plt.scatter(x, y, c=colors)

plt.show()

Resultaat:


Kleurkaart

Die Matplotlib-module het 'n aantal beskikbare kleurkaarte.

'n Kleurkaart is soos 'n lys kleure, waar elke kleur 'n waarde het wat wissel van 0 tot 100.

Hier is 'n voorbeeld van 'n kleurkaart:

Hierdie kleurkaart word 'viridis' genoem en soos jy kan sien wissel dit van 0, wat 'n pers kleur is, en tot 100, wat 'n geel kleur is.

Hoe om die ColorMap te gebruik

Jy kan die kleurkaart spesifiseer met die sleutelwoordargument cmapmet die waarde van die kleurkaart, in hierdie geval 'viridis'wat een van die ingeboude kleurkaarte is wat in Matplotlib beskikbaar is.

Daarbenewens moet jy 'n skikking skep met waardes (van 0 tot 100), een waarde vir elk van die punte in die spreidingsplot:

Voorbeeld

Skep 'n kleurskikking, en spesifiseer 'n kleurkaart in die spreidingsdiagram:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.show()

Resultaat:

Jy kan die kleurkaart by die tekening insluit deur die plt.colorbar()stelling in te sluit:

Voorbeeld

Sluit die werklike kleurkaart in:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.colorbar()

plt.show()

Resultaat:

Beskikbare ColorMaps

Jy kan enige van die ingeboude kleurkaarte kies:

Name   Reverse
Accent   Accent_r
Blues   Blues_r
BrBG   BrBG_r
BuGn   BuGn_r
BuPu   BuPu_r
CMRmap   CMRmap_r
Dark2   Dark2_r
GnBu   GnBu_r
Greens   Greens_r
Greys   Greys_r
OrRd   OrRd_r
Oranges   Oranges_r
PRGn   PRGn_r
Paired   Paired_r
Pastel1   Pastel1_r
Pastel2   Pastel2_r
PiYG   PiYG_r
PuBu   PuBu_r
PuBuGn   PuBuGn_r
PuOr   PuOr_r
PuRd   PuRd_r
Purples   Purples_r
RdBu   RdBu_r
RdGy   RdGy_r
RdPu   RdPu_r
RdYlBu   RdYlBu_r
RdYlGn   RdYlGn_r
Reds   Reds_r
Set1   Set1_r
Set2   Set2_r
Set3   Set3_r
Spectral   Spectral_r
Wistia   Wistia_r
YlGn   YlGn_r
YlGnBu   YlGnBu_r
YlOrBr   YlOrBr_r
YlOrRd   YlOrRd_r
afmhot   afmhot_r
autumn   autumn_r
binary   binary_r
bone   bone_r
brg   brg_r
bwr   bwr_r
cividis   cividis_r
cool   cool_r
coolwarm   coolwarm_r
copper   copper_r
cubehelix   cubehelix_r
flag   flag_r
gist_earth   gist_earth_r
gist_gray   gist_gray_r
gist_heat   gist_heat_r
gist_ncar   gist_ncar_r
gist_rainbow   gist_rainbow_r
gist_stern   gist_stern_r
gist_yarg   gist_yarg_r
gnuplot   gnuplot_r
gnuplot2   gnuplot2_r
gray   gray_r
hot   hot_r
hsv   hsv_r
inferno   inferno_r
jet   jet_r
magma   magma_r
nipy_spectral   nipy_spectral_r
ocean   ocean_r
pink   pink_r
plasma   plasma_r
prism   prism_r
rainbow   rainbow_r
seismic   seismic_r
spring   spring_r
summer   summer_r
tab10   tab10_r
tab20   tab20_r
tab20b   tab20b_r
tab20c   tab20c_r
terrain   terrain_r
twilight   twilight_r
twilight_shifted   twilight_shifted_r
viridis   viridis_r
winter   winter_r

Grootte

Jy kan die grootte van die kolletjies met die sargument verander.

Net soos kleure, maak seker dat die skikking vir groottes dieselfde lengte het as die skikkings vir die x- en y-as:

Voorbeeld

Stel jou eie grootte vir die merkers:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])

plt.scatter(x, y, s=sizes)

plt.show()

Resultaat:


Alfa

Jy kan die deursigtigheid van die kolletjies met die alphaargument aanpas.

Net soos kleure, maak seker dat die skikking vir groottes dieselfde lengte het as die skikkings vir die x- en y-as:

Voorbeeld

Stel jou eie grootte vir die merkers:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])

plt.scatter(x, y, s=sizes, alpha=0.5)

plt.show()

Resultaat:


Kombineer kleurgrootte en alfa

Jy kan 'n kleurkaart met verskillende groottes op die kolletjies kombineer. Dit word die beste gevisualiseer as die kolletjies deursigtig is:

Voorbeeld

Skep ewekansige skikkings met 100 waardes vir x-punte, y-punte, kleure en groottes:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(100, size=(100))
y = np.random.randint(100, size=(100))
colors = np.random.randint(100, size=(100))
sizes = 10 * np.random.randint(100, size=(100))

plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')

plt.colorbar()

plt.show()

Resultaat: