Visualisering af 2D-gitre og listeindhold ved hjælp af matplotlib i Python

Et 2D-gitterarrayplot kan være et værdifuldt visualiseringsværktøj, f.eks. inden for agentbaseret simulation. I dette indlæg vil jeg give en kort vejledning i, hvordan du kan visualisere et 2D-gitterarray ved hjælp af matplotlib i Python. Kodningseksemplet er nedenfor; relevant dokumentation er tilføjet i form af kommentarer.

# til at begynde med har vi brug for matplotlib.pyplot
from matplotlib import pyplot
# jeg vil oprette en 8 x 8 2d matrix med tilfældige bits som elementer (0 eller 1);
# til randomisering af heltal (0 eller 1) Jeg bruger det tilfældige modul i Python;
# til at opbygge hver række i 2. matrix bruger jeg listeforståelse i Python
import random
data = [[random.randint(a=0,b=1) for x in range(0,8)], # row 1
        [random.randint(a=0,b=1) for x in range(0,8)], # row 2
        [random.randint(a=0,b=1) for x in range(0,8)], # row 3
        [random.randint(a=0,b=1) for x in range(0,8)], # row 4
        [random.randint(a=0,b=1) for x in range(0,8)], # row 5
        [random.randint(a=0,b=1) for x in range(0,8)], # row 6
        [random.randint(a=0,b=1) for x in range(0,8)], # row 7
        [random.randint(a=0,b=1) for x in range(0,8)]] # row 8
# vis 2d datamatrixen
data
[[1, 1, 0, 0, 1, 1, 1, 0],
 [1, 1, 1, 0, 1, 0, 1, 1],
 [0, 1, 0, 1, 0, 0, 0, 0],
 [1, 1, 0, 0, 1, 1, 0, 1],
 [0, 1, 0, 1, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 1, 0, 0, 0, 1, 1],
 [0, 0, 0, 1, 1, 0, 0, 1]]
# vi visualiserer bitene i denne datamatrix med matplot.pyplot;
# the .imshow function from Python can do the job
pyplot.figure(figsize=(5,5))
pyplot.imshow(data)
pyplot.show()
# .imshow har en række parametre, som jeg kan bruge til at justere 2D-gittervisualiseringen
# indstilling af "alfa" resulterer i defineret gennemsigtighed
pyplot.imshow(data, alpha=0.75)
pyplot.show()
# "cmap" giver mulighed for at definere et defineret farvekort;
# til dette skal vi importere farver fra matplotlib
from matplotlib import colors
# ved hjælp af ListedColormap-metoden fra farvepakken kan vi definere et farvekort
colormap = colors.ListedColormap(["red","green"])
# afleverer dette problem til
pyplot.imshow(data,cmap=colormap)
pyplot.show()
# som vist i min dokumentation om matplotlib i python, kan vi også f.eks. justere akse-flåter eller tilføje etiketter;
# justering af figurstørrelse
pyplot.figure(figsize=(10,10))
# tilføjer etiketter til x- og y-aksen
pyplot.xlabel("x axis with ticks",
             size = 14)
pyplot.ylabel("y axis with ticks",
             size= 14)
# tilføjer plottitel
pyplot.title("this is the title of the plot",
             size=28)
# justering af kryds på både x- og y-aksen
pyplot.xticks(size=14,
             color = "red")
pyplot.yticks(size=14, 
              color = "red")
# definerer farvekort
colormap = colors.ListedColormap(["darkblue","lightblue"])
# tildeler farvekort, når ".imshow" -metoden kollideres
pyplot.imshow(data,
             cmap=colormap)
<matplotlib.image.AxesImage at 0x16408e89488>

Jeg vil bruge denne tilgang til at visualisere iterationer i nogle agentbaserede simuleringsundersøgelser. Du kan læse mere herom i andre indlæg her på bloggen.

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close

Meta