a
This commit is contained in:
@@ -0,0 +1,125 @@
|
|||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
def frequency(input_file: str):
|
||||||
|
data = []
|
||||||
|
frequencies = {}
|
||||||
|
|
||||||
|
# Step 1: Read the CSV file manually
|
||||||
|
with open(input_file, 'r') as file:
|
||||||
|
lines = file.readlines()
|
||||||
|
|
||||||
|
# Step 2: Parse the first line to get the headers
|
||||||
|
headers = lines[0].strip().split(';')
|
||||||
|
|
||||||
|
# Step 3: Parse the subsequent lines to get the data
|
||||||
|
for line in lines[1:]:
|
||||||
|
values = line.strip().split(';')
|
||||||
|
row_dict = {headers[i]: values[i] for i in range(len(headers))}
|
||||||
|
data.append(row_dict)
|
||||||
|
|
||||||
|
# Step 4: Compute frequencies for each discrete variable
|
||||||
|
discrete_variables = ['Street', 'Neighborhood', 'Bldg Type', 'House Style',
|
||||||
|
'Overall Qual', 'Overall Cond', 'Mo Sold', 'Yr Sold',
|
||||||
|
'Sale Type', 'Sale Condition']
|
||||||
|
|
||||||
|
for var in discrete_variables:
|
||||||
|
var_values = [row[var] for row in data]
|
||||||
|
frequencies[var] = Counter(var_values)
|
||||||
|
|
||||||
|
# Step 5: Print the frequency counts to the console
|
||||||
|
for var, freq_dict in frequencies.items():
|
||||||
|
print(f'Frequencies for {var}:')
|
||||||
|
for value, count in freq_dict.items():
|
||||||
|
print(f'{value}: {count}')
|
||||||
|
print() # Blank line for readability
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def plot_frequency(input_file: str):
|
||||||
|
data = []
|
||||||
|
frequencies = {}
|
||||||
|
|
||||||
|
# Step 1: Read the CSV file manually
|
||||||
|
with open(input_file, 'r') as file:
|
||||||
|
lines = file.readlines()
|
||||||
|
|
||||||
|
# Step 2: Parse the first line to get the headers
|
||||||
|
headers = lines[0].strip().split(';')
|
||||||
|
|
||||||
|
# Step 3: Parse the subsequent lines to get the data
|
||||||
|
for line in lines[1:]:
|
||||||
|
values = line.strip().split(';')
|
||||||
|
row_dict = {headers[i]: values[i] for i in range(len(headers))}
|
||||||
|
data.append(row_dict)
|
||||||
|
|
||||||
|
# Step 4: Compute frequencies for each discrete variable
|
||||||
|
discrete_variables = ['Street', 'Neighborhood', 'Bldg Type', 'House Style',
|
||||||
|
'Overall Qual', 'Overall Cond', 'Mo Sold', 'Yr Sold',
|
||||||
|
'Sale Type', 'Sale Condition']
|
||||||
|
|
||||||
|
for var in discrete_variables:
|
||||||
|
var_values = [row[var] for row in data]
|
||||||
|
frequencies[var] = Counter(var_values)
|
||||||
|
|
||||||
|
# Step 5: Plot the frequencies using bar charts and pie charts
|
||||||
|
for var, freq_dict in frequencies.items():
|
||||||
|
labels = list(freq_dict.keys())
|
||||||
|
counts = list(freq_dict.values())
|
||||||
|
|
||||||
|
# Bar chart
|
||||||
|
plt.figure(figsize=(10, 6))
|
||||||
|
plt.bar(labels, counts, color='skyblue')
|
||||||
|
plt.title(f'Bar Chart for {var}')
|
||||||
|
plt.xlabel(var)
|
||||||
|
plt.ylabel('Frequency')
|
||||||
|
plt.xticks(rotation=45, ha='right')
|
||||||
|
plt.tight_layout()
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
# Pie chart
|
||||||
|
plt.figure(figsize=(8, 8))
|
||||||
|
plt.pie(counts, labels=labels, autopct='%1.1f%%', colors=plt.cm.Paired.colors)
|
||||||
|
plt.title(f'Pie Chart for {var}')
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
def plot_histogram(input_file: str):
|
||||||
|
data = []
|
||||||
|
|
||||||
|
# Step 1: Read the CSV file manually
|
||||||
|
with open(input_file, 'r') as file:
|
||||||
|
lines = file.readlines()
|
||||||
|
|
||||||
|
# Step 2: Parse the first line to get the headers
|
||||||
|
headers = lines[0].strip().split(';')
|
||||||
|
|
||||||
|
# Step 3: Parse the subsequent lines to get the data
|
||||||
|
for line in lines[1:]:
|
||||||
|
values = line.strip().split(';')
|
||||||
|
row_dict = {headers[i]: values[i] for i in range(len(headers))}
|
||||||
|
data.append(row_dict)
|
||||||
|
|
||||||
|
# Step 4: Extract the "SalePrice" variable and convert it to numeric values
|
||||||
|
sale_prices = [int(row['SalePrice']) for row in data]
|
||||||
|
|
||||||
|
# Step 5: Plot the histogram for the "SalePrice" variable
|
||||||
|
plt.figure(figsize=(10, 6))
|
||||||
|
plt.hist(sale_prices, bins=20, color='skyblue', edgecolor='black')
|
||||||
|
plt.title('Histogram of SalePrice')
|
||||||
|
plt.xlabel('SalePrice')
|
||||||
|
plt.ylabel('Frequency')
|
||||||
|
plt.grid(axis='y', alpha=0.75)
|
||||||
|
plt.tight_layout()
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
# Example usage
|
||||||
|
#frequency('AmesHousing.csv')
|
||||||
|
|
||||||
|
# Example usage 2
|
||||||
|
#plot_frequency('AmesHousing.csv')
|
||||||
|
|
||||||
|
# Example usage 3
|
||||||
|
plot_histogram('AmesHousing.csv')
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
def int_list(input_file: str, vars: []):
|
||||||
|
data = []
|
||||||
|
with open(input_file, 'r') as file:
|
||||||
|
lines = file.readlines()
|
||||||
|
headers = lines[0].strip().split(';')
|
||||||
|
for line in lines[1:]:
|
||||||
|
values = line.strip().split(';')
|
||||||
|
row_dict = {headers[i]: values[i] for i in range(len(headers))}
|
||||||
|
data.append(row_dict)
|
||||||
|
discrete_variables = vars
|
||||||
|
for var in discrete_variables:
|
||||||
|
var_values = [row[var] for row in data]
|
||||||
|
int_values = [int(numeric_string) for numeric_string in var_values]
|
||||||
|
return int_values
|
||||||
|
|
||||||
|
def do_stuff(input_file: str):
|
||||||
|
int_values = int_list(input_file, ['SalePrice'])
|
||||||
|
s = pd.Series(int_values)
|
||||||
|
print(f'Median: {s.median()}')
|
||||||
|
print(f'Mean: {s.mean()}')
|
||||||
|
print(f'Quartile: {s.quantile(0.25)} {s.quantile(0.75)}')
|
||||||
|
print(f'Decile: {s.quantile(0.1)} {s.quantile(0.9)}')
|
||||||
|
print()
|
||||||
|
print(f'Range: {s.max() - s.min()}')
|
||||||
|
print(f'Qartile diff: {s.quantile(0.75) - s.quantile(0.25)}')
|
||||||
|
print(f'STD: {s.std()}')
|
||||||
|
|
||||||
|
def do_stuff2(input_file: str):
|
||||||
|
print()
|
||||||
|
# plt.boxplot(int_list(input_file, ['Year Built']))
|
||||||
|
# plt.show()
|
||||||
|
# plt.boxplot(int_list(input_file, ['Year Remod/Add']))
|
||||||
|
# plt.show()
|
||||||
|
data = [int_list(input_file, ['Year Built']),int_list(input_file, ['Year Remod/Add'])]
|
||||||
|
fig = plt.figure(figsize=(11, 7))
|
||||||
|
|
||||||
|
# Creating axes instance
|
||||||
|
ax = fig.add_axes([0, 0, 1, 1])
|
||||||
|
|
||||||
|
|
||||||
|
# Creating plot
|
||||||
|
bp = ax.boxplot(data)
|
||||||
|
|
||||||
|
# show plot
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
def test():
|
||||||
|
print(int_list("AmesHousing.csv",['SalePrice, Year Built, Year Remod/Add']))
|
||||||
|
|
||||||
|
do_stuff2("AmesHousing.csv")
|
||||||
|
#test()
|
||||||
|
|||||||
18
WS24_25/WebTech/ue4/1/seite.html
Normal file
18
WS24_25/WebTech/ue4/1/seite.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>CSS einbinden</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css">
|
||||||
|
<style>
|
||||||
|
h2 {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h2 style="background-color: blue;">Erste Überschrift</h2>
|
||||||
|
<h2>Zweite Überschrift</h2>
|
||||||
|
</body>
|
||||||
0
WS24_25/WebTech/ue4/1/syle.css
Normal file
0
WS24_25/WebTech/ue4/1/syle.css
Normal file
27
WS24_25/WebTech/ue4/2/seite.html
Normal file
27
WS24_25/WebTech/ue4/2/seite.html
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Übung: CSS lesen</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>Cascading Stylesheets</h1>
|
||||||
|
<nav> <a href="#einleitung">Einleitung</a> | <a href="#syntax">Syntax</a> </nav>
|
||||||
|
<section id="einleitung">
|
||||||
|
<h2>Einleitung</h2>
|
||||||
|
<p>Mit Cascading Stylesheets (CSS) kann die Darstellung von HTML-Elementen definiert werden.</p>
|
||||||
|
<div class="hinweis">Hinweis: Damit unterstützt CSS die saubere Trennung zwischen Darstellung und
|
||||||
|
Inhalt/Struktur.</div>
|
||||||
|
</section>
|
||||||
|
<section id="syntax">
|
||||||
|
<h2>Syntax</h2>
|
||||||
|
<p>Eine CSS-Regel besteht aus einem Selektor und einem Deklarationsblock mit 1-n Deklarationen.</p>
|
||||||
|
<div class="hinweis">Hinweis: Deklarationen werden mit Semikolons getrennt.</div> <a
|
||||||
|
href="http://w3c.org/css">Weitere Infos im Standard...</a>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
19
WS24_25/WebTech/ue4/2/style.css
Normal file
19
WS24_25/WebTech/ue4/2/style.css
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/* Regel 1 */
|
||||||
|
h1 { color:red; }
|
||||||
|
/* Regel 2 ("text-transform: uppercase" setzt Text in Großbuchstaben) */
|
||||||
|
h1, h2 { text-transform: uppercase; }
|
||||||
|
/* Regel 3 ("text-transform: lowercase" setzt Text in Kleinbuchstaben) */
|
||||||
|
h1 h2 { text-transform: lowercase; }
|
||||||
|
/* Regel 4 */
|
||||||
|
.hinweis { background-color: lightblue; }
|
||||||
|
/* Regel 5 */
|
||||||
|
#hinweis { background-color: red; }
|
||||||
|
/* Regel 6 */
|
||||||
|
a[href^="#"] { color: green; }
|
||||||
|
/* Regel 7 */
|
||||||
|
nav a:hover {
|
||||||
|
background-color: green;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/* Regel 8 ("font-style: italic" stellt Text kursiv dar) */
|
||||||
|
*[id] { font-style: italic; }
|
||||||
33
WS24_25/WebTech/ue4/3/seite.html
Normal file
33
WS24_25/WebTech/ue4/3/seite.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>CSS-Selektoren</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1><span class="tm">Selectors</span> Level 3</h1>
|
||||||
|
<section class="box" id="abstract">
|
||||||
|
<h2>Abstract</h2>
|
||||||
|
<p>
|
||||||
|
<span class="tm">Selectors</span> are patterns
|
||||||
|
that match against elements in a tree, and
|
||||||
|
as such form one of several technologies that
|
||||||
|
can be used to select nodes in an XML document.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section class="box">
|
||||||
|
<h2><span class="tm">Selectors</span></h2>
|
||||||
|
<p>
|
||||||
|
A <span class="tm">Selector</span> represents
|
||||||
|
a structure. This structure can be used as a
|
||||||
|
condition (e.g. in a CSS rule) that determines
|
||||||
|
which elements a selector matches in the
|
||||||
|
document tree.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
19
WS24_25/WebTech/ue4/3/style.css
Normal file
19
WS24_25/WebTech/ue4/3/style.css
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/* Setzt die Farbe des Texts in allen <h1> und <h2> Überschriften auf blau */
|
||||||
|
h1 {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Setzt den Hintergrund der Elemente mit der Klasse "box" auf orange */
|
||||||
|
.box {
|
||||||
|
background-color: orange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Setzt den Hintergrund des Elements mit der ID "abstract" auf rot */
|
||||||
|
#abstract {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fügt das ™-Zeichen nach jedem Element mit der Klasse "tm" hinzu */
|
||||||
|
.tm::after {
|
||||||
|
content: "™";
|
||||||
|
}
|
||||||
43
WS24_25/WebTech/ue4/4/seite.html
Normal file
43
WS24_25/WebTech/ue4/4/seite.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>CSS schreiben</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h2>Überschrift</h2>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>background-color</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>1.</td>
|
||||||
|
<td>lightblue</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2.</td>
|
||||||
|
<td>white</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>3.</td>
|
||||||
|
<td>lightblue</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<section>
|
||||||
|
<h2>Sektionsüberschrift</h2>
|
||||||
|
<p>Der erste Absatz.</p>
|
||||||
|
<p>Der zweite Absatz.</p>
|
||||||
|
<section>
|
||||||
|
<h2>Noch eine Sektionsüberschrift</h2>
|
||||||
|
<p>Der dritte Absatz.</p>
|
||||||
|
<p>Der vierte Absatz.</p>
|
||||||
|
</section>
|
||||||
|
<p>Der fünfte Absatz.</p>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
25
WS24_25/WebTech/ue4/4/style.css
Normal file
25
WS24_25/WebTech/ue4/4/style.css
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/* Tabellenkopf in roter Schrift */
|
||||||
|
th {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Abwechselnde Zeilenfarben in der Tabelle: lightblue und white */
|
||||||
|
tr:nth-child(even) td {
|
||||||
|
background-color: lightblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:nth-child(odd) td {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hintergrundfarbe für die Absätze 2, 4 und 5 auf gelb setzen */
|
||||||
|
/* section > p:nth-of-type(2),
|
||||||
|
section > section > p:nth-of-type(2),
|
||||||
|
section > p:nth-of-type(3) {
|
||||||
|
background-color: yellow;
|
||||||
|
} */
|
||||||
|
|
||||||
|
/* Gelber Hintergrund für alle Absätze außer dem ersten in jeder Section */
|
||||||
|
section p:not(:first-of-type) {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user