frames for day3
This commit is contained in:
parent
f4dd497a37
commit
5a2823872f
@ -2,6 +2,8 @@
|
|||||||
# alle energieformen in einen plot
|
# alle energieformen in einen plot
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
from pandas.core.config_init import max_cols
|
||||||
|
|
||||||
energy_df = pd.read_csv("../data/germany_energy_mix_2019_2024.csv")
|
energy_df = pd.read_csv("../data/germany_energy_mix_2019_2024.csv")
|
||||||
# 1) Neue spalte
|
# 1) Neue spalte
|
||||||
energy_df["Year Quarter"] = energy_df["Year"].astype(str) + " " + energy_df['Quarter']
|
energy_df["Year Quarter"] = energy_df["Year"].astype(str) + " " + energy_df['Quarter']
|
||||||
@ -43,7 +45,51 @@ def energy_plots():
|
|||||||
# 2. In 2 Plots übereinander
|
# 2. In 2 Plots übereinander
|
||||||
# - greenenergies
|
# - greenenergies
|
||||||
# - nongreenenergies
|
# - nongreenenergies
|
||||||
|
green_sources = ['Solar', 'Wind_Onshore', 'Wind_Offshore', 'Hydroelectric', 'Biomass']
|
||||||
|
nongreen_sources = ['Natural_Gas', 'Coal_Hard', 'Coal_Lignite', 'Nuclear', 'Oil']
|
||||||
|
|
||||||
|
fig, (ax1, ax2) = plt.subplots(2, 1,
|
||||||
|
figsize=(15, 12),
|
||||||
|
sharex=True) # als pdf, png speichern
|
||||||
|
|
||||||
|
# top-plot die grünen Energien
|
||||||
|
for source in green_sources:
|
||||||
|
ax1.plot(quarterly_data.index,
|
||||||
|
quarterly_data[source],
|
||||||
|
color=colors.get(source, "green"),
|
||||||
|
label=source,
|
||||||
|
marker="o", linewidth=2, markersize=4)
|
||||||
|
|
||||||
|
for source in nongreen_sources:
|
||||||
|
ax2.plot(quarterly_data.index,
|
||||||
|
quarterly_data[source],
|
||||||
|
color=colors.get(source, "brown"),
|
||||||
|
label=source,
|
||||||
|
marker="o", linewidth=2, markersize=4)
|
||||||
|
|
||||||
|
ax1.set_title("Erneuerbaren Energien")
|
||||||
|
ax2.set_title("Nichterneuerbaren Energien")
|
||||||
|
|
||||||
|
# jede spalte 1 max = series => max -> einen wert
|
||||||
|
max_value = quarterly_data.max().max() # * 1.05
|
||||||
|
max_value = max_value + (10 - max_value % 10)
|
||||||
|
min_value = quarterly_data.min().min()
|
||||||
|
print(max_value)
|
||||||
|
for ax in [ax1, ax2]:
|
||||||
|
ax.set_ylim(min_value, max_value)
|
||||||
|
ax.grid(True, alpha=0.3)
|
||||||
|
ax.legend()
|
||||||
|
ax.set_ylabel("EnergieProduktion [TWh]")
|
||||||
|
|
||||||
|
# nur jedes 2te quartal
|
||||||
|
labels = ax2.get_xticklabels()
|
||||||
|
for i, label in enumerate(labels):
|
||||||
|
if i % 2 == 1:
|
||||||
|
label.set_visible(False)
|
||||||
|
|
||||||
|
fig.tight_layout() # enger zusammen
|
||||||
|
fig.savefig("energy_by_quarter.pdf") # pdf, svg, eps
|
||||||
|
plt.show()
|
||||||
|
|
||||||
# 3. Alle energien nach type in einem barplot
|
# 3. Alle energien nach type in einem barplot
|
||||||
# - pie-plot
|
# - pie-plot
|
||||||
|
|||||||
100
src/T16_plotly_expls.py
Normal file
100
src/T16_plotly_expls.py
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
import pandas as pd
|
||||||
|
import plotly # pip/conda install plotly
|
||||||
|
# pip install kaleido
|
||||||
|
# javascript welches den plot enthält
|
||||||
|
import plotly.io as pio
|
||||||
|
|
||||||
|
pio.renderers.default = "browser"
|
||||||
|
# T14_plotten.py
|
||||||
|
cities = {"Stadt": ["London", "Berlin", "Madrid", "Rom", "Paris", "Wien", "Bukarest", "Hamburg", "Budapest", "Warsaw", "Barcelona", "München", "Mailand"],
|
||||||
|
"Population": [8615246, 3562166, 3165235, 2874038, 2273305, 1805681, 1803425, 1760433, 1754000, 1740119, 1602386, 1493900, 1350680],
|
||||||
|
"Land": ["England", "Deutschland", "Spanien", "Italien", "Frankreich", "Österreich", "Romanien", "Deutschland", "Ungarn", "Polen", "Spanien", "Deutschland", "Italien"]}
|
||||||
|
cities_df = pd.DataFrame(cities)
|
||||||
|
areas = [1572, 892, 604, 1285, 105,415, 228, 755, 525, 517, 101, 310, 182]
|
||||||
|
cities_df = pd.DataFrame(cities)
|
||||||
|
cities_df["Flaeche"] = areas
|
||||||
|
|
||||||
|
# **kwargs
|
||||||
|
fig = cities_df.plot(x="Stadt", y=["Population", "Flaeche"], backend="plotly")
|
||||||
|
fig.show()
|
||||||
|
|
||||||
|
|
||||||
|
energy_df = pd.read_csv("../data/germany_energy_mix_2019_2024.csv")
|
||||||
|
# 1) Neue spalte
|
||||||
|
energy_df["Year Quarter"] = energy_df["Year"].astype(str) + " " + energy_df['Quarter']
|
||||||
|
energy_df.drop(["Year", "Quarter"], axis=1, inplace=True)
|
||||||
|
quarterly_data = energy_df.pivot_table(
|
||||||
|
index="Year Quarter",
|
||||||
|
columns="Energy_Source",
|
||||||
|
values="Generation_TWh",
|
||||||
|
aggfunc="sum",
|
||||||
|
fill_value=0,
|
||||||
|
)
|
||||||
|
|
||||||
|
print(quarterly_data)
|
||||||
|
colors = {
|
||||||
|
'Solar': '#FFD700', # Gold
|
||||||
|
'Wind_Onshore': '#87CEEB', # Sky Blue
|
||||||
|
'Wind_Offshore': '#4682B4', # Steel Blue
|
||||||
|
'Hydroelectric': '#00CED1', # Dark Turquoise
|
||||||
|
'Biomass': '#32CD32', # Lime Green
|
||||||
|
'Natural_Gas': '#FF6347', # Tomato
|
||||||
|
'Coal_Hard': '#2F4F4F', # Dark Slate Gray
|
||||||
|
'Coal_Lignite': '#696969', # Dim Gray
|
||||||
|
'Nuclear': '#FF4500', # Orange Red
|
||||||
|
'Oil': '#8B4513' # Saddle Brown
|
||||||
|
}
|
||||||
|
pd.options.plotting.backend = 'plotly' # backend gesetzt
|
||||||
|
fig = quarterly_data.plot()
|
||||||
|
for i, (col, color) in enumerate(colors.items()):
|
||||||
|
print(quarterly_data.columns.get_loc(col))
|
||||||
|
|
||||||
|
fig.data[quarterly_data.columns.get_loc(col)].line.color = color
|
||||||
|
|
||||||
|
fig.show()
|
||||||
|
|
||||||
|
# klassische Ansatz
|
||||||
|
import plotly.graph_objs as go
|
||||||
|
fig = go.Figure()
|
||||||
|
|
||||||
|
for column in quarterly_data.columns:
|
||||||
|
fig.add_trace(go.Scatter(
|
||||||
|
x=quarterly_data.index,
|
||||||
|
y=quarterly_data[column],
|
||||||
|
mode='lines',
|
||||||
|
name=column,
|
||||||
|
line={'color': colors.get(column, "#000000")}
|
||||||
|
))
|
||||||
|
|
||||||
|
fig.update_layout(
|
||||||
|
title="Quarterly energy production",
|
||||||
|
xaxis_title="Year Quarter",
|
||||||
|
yaxis_title="Generation [TWh]"
|
||||||
|
)
|
||||||
|
|
||||||
|
fig.show()
|
||||||
|
|
||||||
|
# '2019 Q1' Biomass 5.2
|
||||||
|
# '2019 Q1' Solar 9.4
|
||||||
|
print(quarterly_data)
|
||||||
|
#melted = quarterly_data.reset_index().melt(id_vars="Year Quarter", value_vars=[])
|
||||||
|
melted = quarterly_data.melt(ignore_index=False)
|
||||||
|
fig = melted.plot(x=melted.index,
|
||||||
|
y=melted["value"],
|
||||||
|
colors='Energy_Source',
|
||||||
|
color_discrete_map=colors)
|
||||||
|
fig.show()
|
||||||
|
|
||||||
|
fig = go.Figure()
|
||||||
|
fig.add_trace(go.Bar(
|
||||||
|
x=melted.index,
|
||||||
|
y=melted["value"],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
fig.update_layout(
|
||||||
|
title="Bars of energy",
|
||||||
|
xaxis_title="Year Quarter",
|
||||||
|
yaxis_title="Generation [TWh]"
|
||||||
|
)
|
||||||
|
|
||||||
|
fig.show()
|
||||||
22
src/T17_merging_of_frames.py
Normal file
22
src/T17_merging_of_frames.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
|
||||||
|
kunden1 = pd.DataFrame({
|
||||||
|
'kunden_id': [1, 2],
|
||||||
|
'name': ['Anna', 'Ben'],
|
||||||
|
'stadt': ['Berlin', 'München']
|
||||||
|
})
|
||||||
|
|
||||||
|
kunden2 = pd.DataFrame({
|
||||||
|
'kunden_id': [3, 4],
|
||||||
|
'name': ['Clara', 'David'],
|
||||||
|
'stadt': ['Hamburg', 'Köln']
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
bestellungen = pd.DataFrame({
|
||||||
|
'bestell_id': [101, 102, 103, 104],
|
||||||
|
'kunden_id': [1, 2, 1, 5],
|
||||||
|
'produkt': ['Laptop', 'Maus', 'Tastatur', 'Monitor'],
|
||||||
|
'preis': [800, 25, 50, 300]
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue
Block a user