Commit f06da125 authored by Børge Haugset's avatar Børge Haugset
Browse files

pre_forelesning

parent 51a9c42d
import matplotlib
import matplotlib.pyplot as plt
import numpy as np # Data for plotting
t = np.arange(-6.0, 4.5, 0.01)
# t blir vektoren [0.00, 0.01, 0.02, 0.03,...1.99]
s = t**3 + 2*t**2 - 20*t + 1
# her regnes 2*pi*t + 1 for hver verdi av t og
# dette legges inn i vektoren s
fig, ax = plt.subplots()
# genererer grafen og returnerer en referanse til figuren (til fig)
# og en liste over aksene (ax)
ax.plot(t, s) # plotter selve grafen
ax.set(xlabel='x', ylabel='y',
title='x^3 + 2x^2 - 20x + 1')
# setter navn på aksene
ax.grid() # tegner en grid på grafen
fig.savefig("test.png") # Lagrer grafen som en png-fil
plt.show() # Viser vinduet med grafen
import matplotlib
import matplotlib.pyplot as plt
import numpy as np # Data for plotting
t = np.arange(-2.0, 2.0, 0.01) # Fra -2 til 2 i steg på 0.01
# t blir vektoren [0.00, 0.01, 0.02, 0.03,...1.99]
s = t**2
# her regnes s = t**2 for hver verdi av t
# og dette legges inn i vektoren s
fig, ax = plt.subplots()
# genererer grafen og returnerer en referanse til figuren (til fig)
# og en liste over aksene (ax)
ax.plot(t, s) # plotter selve grafen
ax.set(xlabel='x', ylabel='y', title='Parabel')
# setter navn på aksene
ax.grid() # tegner en grid på grafen
fig.savefig("parabelen_min.png")
# Lagrer grafen som en png-fil
plt.show() # Viser vinduet med grafen
\ No newline at end of file
# Fra https://matplotlib.org/gallery/pie_and_polar_charts/pie_features.html#sphx-glr-gallery-pie-and-polar-charts-pie-features-py
import matplotlib.pyplot as plt
# Pie chart, where the slices will be ordered and plotted counter-clockwise:
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()
\ No newline at end of file
#import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
# t blir vektoren [0.00, 0.01, 0.02, 0.03,...1.99]
s = 1 + np.sin(2 * np.pi * t)
# her regnes funksjonen over for hver verdi av t og dette
# legges inn i vektoren s
fig, ax = plt.subplots()
# genererer grafen og returnerer en referanse til
# figuren (til fig) og en liste over aksene (ax)
ax.plot(t, s) # plotter selve grafen
# ax.set(xlabel='time (s)', ylabel='voltage (mV)',
# title='About as simple as it gets, folks')
ax.grid()
fig.savefig("test.png")
plt.show()
\ No newline at end of file
import random
from matplotlib import pyplot as plt
akse_x = [x for x in range(20)]
akse_y = [x//2 for x in akse_x]
akse_y2 = [(x//2)*1.3-1 for x in akse_x]
plt.plot(akse_x, akse_y,'b--')
plt.plot(akse_x, akse_y2)
# Forskjellig utseende på plotting
#plt.style.use('fivethirtyeight')
plt.style.use('ggplot')
# Du kan legge på navn på ting:
plt.xlabel('Alder')
plt.ylabel('Timelønn')
plt.title('Timelønn basert på alder...')
plt.show()
'''
# Vi må ha noe å skrive ut:
# Data: Én liste for x-aksen, to for y-aksen
akse_x = [x for x in range(0,20)] # x fra 0 til 19
akse_y = [x//2 for x in akse_x] # heltallsdivisjon
# Men denne er kanskje litt finere å se på:
#akse_y = [(x*30+random.randint(0,100)) for x in akse_x] # litt tilfeldig
# Den siste øker med andre ord gradvis, plutt noe tilfeldig.
# Enkel plotting av data: (plt.style.available)
plt.plot(akse_x,akse_y)
akse_y2 = [(x//2)*1.3-1 for x in akse_x]
plt.plot(akse_x,akse_y2, 'b')
# hva skjer hvis en bytter ut plot med scatter i forrige linje?
plt.show()
# Forskjellig utseende på plotting
#plt.style.use('fivethirtyeight')
#plt.style.use('ggplot')
# Du kan legge på navn på ting:
#plt.xlabel('Alder')
#plt.ylabel('Timelønn')
#plt.title('Timelønn basert på alder...')
# Enkel plotting av data:
#plt.plot(akse_x,akse_y) # Under legger jeg inn to, og manipulerer utseende.
#plt.show()
# Vis at en kan zoome og slikt i vinduet, og beklag fontstørrelsen
# Det kan gjøres mye mer avansert:
# https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D.set_linestyle
'''
'''
akse_y2 = [(x*30+random.randint(200,300)) for x in akse_x] # En grafe til!
plt.plot(akse_x,akse_y, color='g', linestyle = '--', marker='.',
linewidth = 3, label='Før klaging') # Legger inn de to aksene en skal plotte
plt.plot(akse_x,akse_y2, 'b', label="Etter klaging") # Samme x-akse, ulik y-verdi
plt.legend() # Vi vil vise hva grafene viser, med fargekoding
plt.show() # Viser begge grafene
'''
\ No newline at end of file
import matplotlib
import matplotlib.pyplot as plt
import numpy as np # Data for plotting
t = np.arange(-6.0, 4.5, 0.01)
s = t**3 + 2*t**2 - 20*t + 1
# her beregnes funksjonen over for hver verdi av t og
# dette legges inn i vektoren s
fig, ax = plt.subplots()
# genererer grafen og returnerer en referanse til figuren (til fig)
# og en liste over aksene (ax)
ax.plot(t, s) # plotter selve grafen
ax.set(xlabel='x', ylabel='y',
title='x^3 + 2x^2 - 20x + 1')
# setter navn på aksene
# En intrikat måte å sette fontstørrelsen... kan sikkert forenkles
for item in ([ax.title, ax.xaxis.label, ax.yaxis.label] +
ax.get_xticklabels() + ax.get_yticklabels()):
item.set_fontsize(120)
ax.grid() # tegner en grid på grafen
fig.savefig("tredjegrad.png") # Lagrer grafen som en png-fil
plt.show() # Viser vinduet med grafen
......@@ -25,7 +25,7 @@ def find_title(dict, name):
print(v[0])
def find_country(dict, country):
for k, v in dict.items():
for v in dict.values():
try:
if country in v[2]:
print(f'{country}: {v[0]} ({v[3]}).')
......@@ -43,6 +43,19 @@ def load_dict():
return pickle.load(f)
def items_per_year(dict, country):
per_year = {}
try:
for v in dict.values():
if country in v[2]:
already = per_year.get(v[3], 0)
per_year[v[3]] = already + 1
print(per_year[v[3]])
except:
print('error')
finally:
return sorted(per_year)
dict = read_netflix()
find_title(dict, "Transform")
......
import pickle
from matplotlib import pyplot as plt
liste = []
def read_netflix():
dict = {}
with open("netflix_sane.csv", 'r', encoding="utf-8") as f:
for line in f.readlines():
try:
liste.append(line.split("#"))
item = line.split("#")
dict[item[1]] = [item[3]] # title
dict[item[1]].append(item[2]) # type
dict[item[1]].append(item[4]) # country
dict[item[1]].append(item[6]) # year
dict[item[1]].append(item[-1]) # desc
except IndexError as e:
print('IndexError:', e, ":", item)
continue
return dict
def find_title(dict, name):
for k, v in dict.items():
if name in v[0]:
print(v[0])
def find_country(dict, country):
for v in dict.values():
try:
if country in v[2]:
print(f'{country}: {v[0]} ({v[3]}).')
except Exception as e:
print("Exception:", e, ":", v)
break
def save_dict(dict):
f = open('netflix.dat', 'wb')
pickle.dump(dict, f)
f.close()
def load_dict():
with open('netflix.dat', 'rb') as f:
return pickle.load(f)
# Finne alle filmer per år for landet inn:
def items_per_year(dict, country):
per_year = {}
try:
for v in dict.values():
if country in v[2]:
already = per_year.get(v[3], 0)
per_year[v[3]] = already + 1
except:
print('error')
finally:
return per_year
dict = read_netflix()
# hente ut alle filmene fra Frankrike per år
france = items_per_year(dict, 'United States')
# sortert liste: Det finnes mer fancy måter å gjøre dette
years = []
items = []
for year in sorted(france):
years.append(year)
items.append(france[year])
# plotting
plt.plot(years, items)
# Forskjellig utseende på plotting
#plt.style.use('fivethirtyeight')
plt.style.use('ggplot')
# Du kan legge på navn på ting:
plt.xlabel('År')
plt.ylabel('Antall innslag')
plt.title('Antall innslag per år.')
plt.show()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment