Browse Source

Programme für Diagrammtypen: Säule, gestapelte Säulen

Linien, gestapelte Balken, Torte
master teil23
Olli Graf 11 months ago
parent
commit
1dce636192
  1. 1
      teil23/.gitignore
  2. 20
      teil23/iospeed_balken.py
  3. 30
      teil23/normparabel_graph.py
  4. 45
      teil23/sinus_parabel_graph.py
  5. 23
      teil23/verkauf_stapel.py
  6. 47
      teil23/vornamen_reader.py
  7. 42
      teil23/vornamen_sauelen.py
  8. 43
      teil23/vornamen_torte.py

1
teil23/.gitignore

@ -3,3 +3,4 @@ __pycache__
bin
lib
share
*.csv

20
teil23/iospeed_balken.py

@ -0,0 +1,20 @@
#! ./bin/python
#encoding: utf-8
import matplotlib.pyplot as plt
import numpy as np
labels = [ 'Pineberry Pi pcie1_gen=2','Pineberry Pi pcie1_gen=3', 'MicroSD Raspi 5', 'MicroSD Raspi 4']
io_read= np.array([148.50,171.99,30.85,10.15])
io_write = np.array([99.15,114.97,20.45,6.63])
legend = ['Schreiben','Lesen']
#Höhe der Balken
__hoehe__ =0.6
fig,ax = plt.subplots()
plt.barh(labels,io_write,__hoehe__)
plt.barh(labels,io_read,__hoehe__,left=io_write)
plt.legend(legend)
plt.show()

30
teil23/normparabel_graph.py

@ -0,0 +1,30 @@
#! ./bin/python
# encoding:utf-8
import matplotlib.pyplot as plt
import numpy as np
def plot_normal_parabel():
# Erzeuge Datenpunkte für x-Werte von -10 bis 10
x = np.linspace(-3, 3, 100)
# Berechne die y-Werte für die Normalparabel
y = x**2
# Erstelle das Diagramm
plt.plot(x, y, label='Normalparabel: $y=x^2$')
# Beschriftungen und Titel hinzufügen
plt.xlabel('x-Achse')
plt.ylabel('y-Achse')
plt.title('Normalparabel')
# Legende hinzufügen
plt.legend()
# Funktion aufrufen, um die Normalparabel zu zeichnen
plot_normal_parabel()
# Diagramm anzeigen
plt.grid(True)
plt.show()

45
teil23/sinus_parabel_graph.py

@ -0,0 +1,45 @@
#! ./bin/python
# encoding:utf-8
import matplotlib.pyplot as plt
import numpy as np
def plot_normal_parabel():
# Erzeuge Datenpunkte für x-Werte von -10 bis 10
x = np.linspace(-3, 3, 100)
# Berechne die y-Werte für die Normalparabel
y = x**2
# Erstelle das Diagramm
plt.plot(x, y, label='Normalparabel: $y=x^2$')
# Beschriftungen und Titel hinzufügen
plt.xlabel('x-Achse')
plt.ylabel('y-Achse')
plt.title('Normalparabel')
# Legende hinzufügen
plt.legend()
def plot_sinus_function():
# Erzeuge Datenpunkte für x-Werte von -2π bis 2π
x = np.linspace(-2 * np.pi, 2 * np.pi, 100)
# Berechne die y-Werte für die Sinusfunktion
y = np.sin(x)
# Erstelle das Diagramm für die Sinusfunktion
plt.plot(x, y, label='Sinusfunktion: $y = \sin(x)$', color='blue')
# Legende hinzufügen
plt.legend()
# Funktion aufrufen, um die Normalparabel zu zeichnen
plot_normal_parabel()
plot_sinus_function()
# Diagramm anzeigen
plt.grid(True)
plt.show()

23
teil23/verkauf_stapel.py

@ -0,0 +1,23 @@
#! ./bin/python
#encoding: utf-8
import matplotlib.pyplot as plt
import numpy as np
jahre= np.array(['2018','2019', '2020'])
aepfel= np.array([1000,1500,2000])
erdbeeren =np.array([500,950,900])
bananen=np.array([400,800,750])
breite = 0.6
fig,ax = plt.subplots()
#ax.legend('Verkäufe')
ax.bar(jahre,bananen,color='yellow')
ax.bar(jahre,erdbeeren,bottom=bananen,color='red')
ax.bar(jahre,aepfel,bottom=erdbeeren,color='green')
plt.legend(['Bananen','Erdbeeren','Äpfel'])
plt.show()

47
teil23/vornamen_reader.py

@ -0,0 +1,47 @@
#encoding: utf-8
def read_vornamen(filename):
dict = {}
# Der Zähler dient nur dazu, die erste Zeile zu überspringen
count = 0
dict['mädchen'] = 0
dict['jungs'] = 0
dict['divers'] = 0
with open(filename,'r') as f:
for zeile in f:
if count >0:
# einzelne Zeile in seine Bestandteile zerlegen
splitted = zeile.strip().split(';')
anzahl = splitted[0]
vorname = splitted[1]
geschlecht= splitted[2]
position = splitted[3]
if geschlecht == 'w':
dict['mädchen'] += 1
elif geschlecht == 'm':
dict['jungs'] += 1
else:
dict['divers'] += 1
data = {}
data['vorname'] = vorname
data['anzahl'] = int(anzahl)
data['geschlecht'] = geschlecht
data['position'] = position
if vorname not in dict:
dict[vorname] = data
else:
# doppelte Einträge summieren wir auf.
e = dict[vorname]
e['anzahl'] = int(anzahl) + (e['anzahl'])
count +=1
gesamt = dict['jungs'] + dict['mädchen'] + dict['divers']
dict['gesamt'] = gesamt
return dict

42
teil23/vornamen_sauelen.py

@ -0,0 +1,42 @@
#! ./bin/python
#encondig: utf-8
import matplotlib.pyplot as plt
from vornamen_reader import read_vornamen
def plot_geschlecht(vornamen):
bez= ['Mädchen', 'Jungs','divers']
geburten = [vornamen['mädchen'], vornamen['jungs'],vornamen['divers']]
print(f'geburten={geburten}')
farben = ['red','blue','green']
fig, ax = plt.subplots()
print(f'fig={fig}')
print(f'ax={ax}')
ax.bar(bez,geburten,label=bez, color=farben)
ax.set_ylabel('Geburten')
ax.set_title('Geburten nach Geschlecht Wuppertal 2020')
ax.legend(title='Geburten')
plt.show()
if __name__ == '__main__':
vornamen = read_vornamen('./Vornamen_Wuppertal_2020.csv')
jungs= vornamen['jungs']
maedels = vornamen['mädchen']
divers = vornamen['divers']
print(f'Jungs: {jungs}')
print(f'Mädchen: {maedels}')
print(f'divers: {divers}')
# print(f'vornamen={vornamen}')
plot_geschlecht(vornamen)

43
teil23/vornamen_torte.py

@ -0,0 +1,43 @@
#! ./bin/python
#encondig: utf-8
import matplotlib.pyplot as plt
import logging
from vornamen_reader import read_vornamen
logging.basicConfig( format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s', level=logging.INFO)
def plot_geschlecht(vornamen):
bez= ['Mädchen', 'Jungs','divers']
geburten = [vornamen['mädchen'], vornamen['jungs'],vornamen['divers']]
logging.info(f'geburten={geburten}')
proz_maedels = round(vornamen['mädchen'] / vornamen['gesamt'] *100,2)
proz_jungs = round(vornamen['jungs'] / vornamen['gesamt'] *100,2)
proz_divers = round(vornamen['divers'] / vornamen['gesamt'] *100,2)
farben = ['red','blue','green']
sizes= [proz_maedels,proz_jungs,proz_divers]
logging.info(f'sizes={sizes}')
fig, ax = plt.subplots()
ax.pie(sizes,explode=(0,0,0), labels=bez,autopct='%1.1f%%',shadow=True,startangle=90)
ax.axis('equal')
plt.show()
if __name__ == '__main__':
vornamen = read_vornamen('./Vornamen_Wuppertal_2020.csv')
jungs= vornamen['jungs']
maedels = vornamen['mädchen']
divers = vornamen['divers']
plot_geschlecht(vornamen)
Loading…
Cancel
Save