# -*- coding: utf-8 -*-
"""
Created on Fri Oct 21 07:03:56 2022

@author: 2017
"""

'''Her er noen kommandoer for å tegne opp grafer i Python.
Ekseperimenter gjerne selv med koden, og undersøk flere muligheter.
For eksempel hvordan tegne opp histogram.
'''

import numpy as np
 #pakke med komandoer for å tegne grafer
import matplotlib.pyplot as plt 

def f(x):  #En funksjon, her kan vi endre uttrykket for å tegne opp andre funksjoner.
    r=x**2
    return r

def der_f(x):  #En annen funksjon.  I dette tilfelle den deriverte til den ovenfor.
    r=2*x
    return r

N=50  #antall punkt vi plotter

plt.close('all')
plt.xlabel('x'),  plt.ylabel('y')   #navn på aksene
dx=np.linspace(-2,2,N)  #Lager en "array" med x-koordinater.  
dy = f(dx)  #Anvender funksjonen f på hver av elementene i dx
der_dy = der_f(dx)

#print(dy)  #skriver ut dy, slik at vi kan se hvordan den ser ut.
plt.grid()  #Lager til et gitter i koordinatsystemet.  Husk tomme parenteser(). 
#plt.axis([-3,3,-2,5])  #plt finner optimale koordinater selv.  
#Hvis vi ønsker spesifikke koordinatakser kan de spesifiseres her. 

plt.plot(dx,dy,'k.')  #Dette er komandoen for å plotte. 
#Vi skriver opp hver av punktene med koordinater hentet henholdsvis fra i-te element i de to arrayene. 
#I hermetegn står koder for farge på graf og hvordan den skal plottes.  plt følger standard fra matlab.
#Default er blå og linjer trukket mellom hver av de plotta punktene. 
#Prøv også  ro , g-- , y-. r. etc. 
#Vi kan skrive opp flere grafer i samme koordinatsystem.
plt.plot(dx,der_dy,'g-')
plt.legend(['f','derivert av f'])
plt.show()  #Dette er kommandoen som viser oss grafen. 