5 svar
49 visningar
Mercy är nöjd med hjälpen!
Mercy 28
Postad: 7 maj 2020

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 8579
Postad: 7 maj 2020

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

Mercy 28
Postad: 7 maj 2020

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

Laguna Online 8579
Postad: 7 maj 2020
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.

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 28
Postad: 8 maj 2020

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

Svara Avbryt
Close