5 svar
148 visningar
Mercy behöver inte mer hjälp
Mercy 33
Postad: 7 maj 2020 14:04

Tomma listor med linjediagram

Mitt linjediagram är helt tomt, vet någon vad det beror på?

Instruktionen är så här:

  • Skapa två tomma listor x5 och xp2
    Fyll listan x5 med den matematiska funktionen y = 5x för x-värden från 0 till 10 (endast heltal)
    Fyll listan xp2 med den matematiska funktionen y = x^2 (upphöjt till) för x-värden från 0 till 10 (endast heltal)
    Visa de båda matematiska funktionerna i ett linjediagram med två linjer

och mina kod är:

# Definiera två tomma listor
x5 = []
xp2 = []

# Fylli listan x5 med y= x5 från 0 till 10
for x in range(0, 11):
x5.append(x5)

# Skriv ut listan
print(x5)

# Fyll i listan xp2 med y = x^2 från 0 till 10
for x in range(0, 11):
xp2.append(x**2)

# Skriv ut listan
print(xp2)

# Generera listorna med list comprehension
x5 = [x5 for x in range(0, 11)]
xp2 = [x**2 for x in range(0, 11)]
print(x5)
print (xp2)

# Importera plot-funktionen och tilldela den namnet plt
import matplotlib.pyplot as plt

# Skapa linjediagram från listorna med x5 och xp2 värden
plt.plot(x5, label="x5")
plt.plot(xp2, label="x**2")
# Sätt titel på axlarna
plt.ylabel("y")
plt.xlabel("x")
# Visa förklaring (labels)
plt.legend()
# Visa grafen
plt.show()

Laguna Online 30484
Postad: 7 maj 2020 14:07

Du skriver ut x5 och xp2 några gånger, det är bra. Tycker du att de innehåller det de ska?

Mercy 33
Postad: 7 maj 2020 14:09

Det tror jag, det som jag vill se om själva diagrammet stämmer med funktionen kanske.

Laguna Online 30484
Postad: 7 maj 2020 14:20
Mercy skrev:

Det tror jag, det som jag vill se om själva diagrammet stämmer med funktionen kanske.

Få se vad utskrifterna av listorna blir.

Lindehaven 820 – Lärare
Postad: 7 maj 2020 18:08

Det blir långa och tomma listor. Anledningen är att x5 initieras tom och adderas sedan till sig själv ett antal gånger; både i for-loopen och sedan i en list comprehension (varav den ena är överflödig).

Det blir så p g a ett saknat multiplikationstecken. "x5" är inte en multiplikation utan ett namn på variabeln. För att multiplicera behöver du skriva "5*x" (eller "x*5").

    x5.append(5*x)

eller

x5 = [5*x for x in range(0, 11)]

Mercy 33
Postad: 8 maj 2020 09:55

Exakt! Det var det som gjorde felet, tack så hemskt mycket !

Svara
Close