Commit cf5a85ab authored by Jan Dinkelbach's avatar Jan Dinkelbach

improved input handling and added comments

parent 7c0dd646
...@@ -3,20 +3,38 @@ import numpy as np ...@@ -3,20 +3,38 @@ import numpy as np
from .timeseries import * from .timeseries import *
def plot_timeseries(figure_id, timeseries, plt_linestyle='-'): def plot_timeseries(figure_id, timeseries, plt_linestyle='-', plt_linewidth=2, plt_color=None):
"""
This function plots either a single timeseries or several timeseries in the figure defined by figure_id.
Several timeseries (handed over in a list) are plotted in several subplots.
In order to plot several timeseries in one plot, the function is to be called several times (hold is activated).
"""
plt.figure(figure_id) plt.figure(figure_id)
if not isinstance(timeseries, list): if not isinstance(timeseries, list):
plt.plot(timeseries.time, timeseries.values, linestyle=plt_linestyle, label=timeseries.label) if plt_color:
plt.plot(timeseries.time, timeseries.values, linestyle=plt_linestyle, label=timeseries.label, linewidth=plt_linewidth, color=plt_color)
else:
plt.plot(timeseries.time, timeseries.values, linestyle=plt_linestyle, label=timeseries.label, linewidth=plt_linewidth)
plt.gca().autoscale(axis='x', tight=True) plt.gca().autoscale(axis='x', tight=True)
plt.legend() plt.legend()
else: else:
for ts in timeseries: for ts in timeseries:
plt.subplot(len(timeseries), 1, timeseries.index(ts) + 1) plt.subplot(len(timeseries), 1, timeseries.index(ts) + 1)
plt.plot(ts.time, ts.values, linestyle=plt_linestyle, label=ts.label) if plt_color:
plt.plot(ts.time, ts.values, linestyle=plt_linestyle, label=ts.label, linewidth=plt_linewidth, color=plt_color)
else:
plt.plot(ts.time, ts.values, linestyle=plt_linestyle, label=ts.label, linewidth=plt_linewidth)
plt.gca().autoscale(axis='x', tight=True) plt.gca().autoscale(axis='x', tight=True)
plt.legend() plt.legend()
def set_time_series_labels(timeseries_list, time_series_labels):
for ts in timeseries_list: def set_timeseries_labels(timeseries, timeseries_labels):
ts.label = time_series_labels[timeseries_list.index(ts)] """
Sets label attribute of timeseries, later used in plotting functions.
Suitable for single timeseries as well as for several timeseries (handed over in a list).
"""
if not isinstance(timeseries, list):
timeseries.label = timeseries_labels
else:
for ts in timeseries:
ts.label = timeseries_labels[timeseries.index(ts)]
\ No newline at end of file
...@@ -2,18 +2,22 @@ import numpy as np ...@@ -2,18 +2,22 @@ import numpy as np
import pandas as pd import pandas as pd
from .timeseries import * from .timeseries import *
def read_timeseries_Modelica(filename, timeseries_names=None): def read_timeseries_Modelica(filename, timeseries_names=None):
from modelicares import SimRes from modelicares import SimRes
sim = SimRes(filename) sim = SimRes(filename)
timeseries_list = []
if timeseries_names is None: if timeseries_names is None:
# No trajectory names specified, thus read in all # No trajectory names specified, thus read in all
print('TBD') print('TBD')
else: else:
# Read in specified time series # Read in specified time series
for name in timeseries_names: if not isinstance(timeseries_names, list):
timeseries_list.append(TimeSeries(name, sim(name).times(), sim(name).values())) timeseries = TimeSeries(timeseries_names, sim(timeseries_names).times(), sim(timeseries_names).values())
return timeseries_list else:
for name in timeseries_names:
timeseries = []
timeseries.append(TimeSeries(name, sim(name).times(), sim(name).values()))
return timeseries
def read_timeseries_PLECS(filename, timeseries_names=None): def read_timeseries_PLECS(filename, timeseries_names=None):
......
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