Matplotlib

Matplotlib är ett bibliotek som tillsammans med NumPy gör det möjligt att skapa olika typer av grafiska visualiseringar i form av grafer och diagram.

Starta Spyder om du inte redan gjort det.

Editor

Till vänster i Spyder hittar du en kodeditor.

New file lines.py

Tryck på ikonen New File och skapa en fil med namnet lines.py.

Rita en rät linje

Lägg till följande rader kod.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two = 2*x

# Plot function
plt.plot(x, two)

# Display the generated diagram
plt.show()

I editorn skall det nu se ut så här.

Högst upp importeras biblioteken matplotlib och numpy.

import matplotlib.pyplot as plt
import numpy as np

Sedan skapas en array med 100 värden jämnt fördelade i intervallet -10 till 10.

# Array of x values
x = np.linspace(-10, 10, 100)

Den skapade arrayen multipliceras med talet 2 och resultatet lagras i variabeln two.

# Function f(x) to plot (array of y values)
two = 2*x

Ett diagram (plot) skapas med värden från arrayen x på x-axeln och motsvarande värden från arrayen two på y-axeln.

# Plot function
plt.plot(x, two)

Avslutningsvis visas det skapade diagrammet på skärmen.

# Display the generated diagram
plt.show()

Kör programmet

Tryck på Run (play). I Python Console får du nu en varning som berättar att det genererade diagrammet visas under fliken Plots i vyn högst upp till höger i Spyder.

Nu visas diagrammet.

Lägg till rutnät

För att visa ett rutnät lägger du till plt.grid() på någon rad innan du gör plt.show(). Programmet ser nu ut så här.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two = 2*x

# Plot function
plt.plot(x, two)

# Show grid lines
plt.grid()

# Display the generated figure
plt.show()

Kör programmet igen genom att trycka på play.

Ett nytt diagram visas nu med samma linje som tidigare fast nu även med ett rutnät.

Lägg till beskrivningar för x- och y-axel

Lägg till följande rader någonstans i programmet innan raden med plt.show().

# Add axis labels
plt.xlabel("x")
plt.ylabel("y")

Hela programmet ser nu ut så här.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two = 2*x

# Plot function
plt.plot(x, two)

# Show grid lines
plt.grid()

# Add axis labels
plt.xlabel("x")
plt.ylabel("y")

# Display the generated diagram
plt.show()

Det nya diagrammet ser ut så här.

Notera att det till vänster om y-axeln nu står y och att det under x-axeln nu står x.

Ändra färg på linjen

Lägg till colol="red" när du genererar diagrammet.

# Plot function
plt.plot(x, two, color="red")

Kör programmet. Det nya diagrammet ser ut så här.

Notera att linjen nu är röd.

Lägg till förklaring

Lägg till label="2x" när du genererar diagrammet.

# Plot function
plt.plot(x, two, color="red", label="2x")

Lägg sedan till följande innan raden med plt.show().

# Show legends
plt.legend()

Hela programmet ser nu ut så här.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two = 2*x

# Plot function
plt.plot(x, two, color="red", label="2x")

# Show grid lines
plt.grid()

# Add axis labels
plt.xlabel("x")
plt.ylabel("y")

# Show legends
plt.legend()

# Display the generated figure
plt.show()

Kör programmet. Det nya diagrammet ser ut så här.

I det övre vänstra hörnet av diagrammet har nu förklaringen 2x lagts till för den röda linjen.

Lägg till en titel

Lägg till följande innan raden med plt.show().

# Add title
plt.title('En rät linje', fontweight="bold", size = 20, pad=10)

Detta kommer lägga till titeln En rät linje i fet (bold) stil, textstorlek 20 med avstånd 10 ovanför diagrammet.

Hela programmet ser nu ut så här.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two= 2*x

# Plot function
plt.plot(x, two, color="red", label="2x")

# Show grid lines
plt.grid()

# Add axis labels
plt.xlabel("x")
plt.ylabel("y")

# Show legends
plt.legend()

# Add title
plt.title('En rät linje', fontweight="bold", size = 20, pad=10)

# Display the generated diagram 
plt.show()

Kör programmet. Det nya diagrammet ser ut så här.

Titeln En rät linje har nu lagts till överst i diagrammet.

Lägg till en linje till

Det går att plotta mer än en linje i taget. Lägg till följande rader.

# Function f(x) to plot (array of y values)
one = 1*x

Du behöver nu plotta båda arrayerna two och one.

# Plot functions
plt.plot(x, two, color="red", label="2x")
plt.plot(x, one, color="blue", label="x")

Ändra även titeln.

# Add title
plt.title('Två räta linjer', fontweight="bold", size = 20, pad=10)

Hela programmet ser nu ut så här.

import matplotlib.pyplot as plt
import numpy as np

# Array of x values
x = np.linspace(-10, 10, 100)

# Function f(x) to plot (array of y values)
two = 2*x

# Function f(x) to plot (array of y values)
one = 1*x

# Plot functions
plt.plot(x, two, color="red", label="2x")
plt.plot(x, one, color="blue", label="x")

# Show grid lines
plt.grid()

# Add axis labels
plt.xlabel("x")
plt.ylabel("y")

# Show legends
plt.legend()

# Add title
plt.title('Två räta linjer', fontweight="bold", size = 20, pad=10)

# Display the generated diagram 
plt.show()

Kör programmet. Det nya diagrammet ser ut så här.