diff --git a/dataprocessing/plottools.py b/dataprocessing/plottools.py index e3f9da92d97008237b1a4d91d116180653e33982..3bc716673a906ab48135c03426bc70a077f440a9 100644 --- a/dataprocessing/plottools.py +++ b/dataprocessing/plottools.py @@ -3,20 +3,38 @@ import numpy as np 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) - 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.legend() else: for ts in timeseries: 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.legend() -def set_time_series_labels(timeseries_list, time_series_labels): - for ts in timeseries_list: - ts.label = time_series_labels[timeseries_list.index(ts)] + +def set_timeseries_labels(timeseries, timeseries_labels): + """ + 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 diff --git a/dataprocessing/readtools.py b/dataprocessing/readtools.py index 6bd5a055f9970ff7f524794967e59892bc88ef25..7ea17f81dea18ede7b4e0e6d1d791babb8624c6f 100644 --- a/dataprocessing/readtools.py +++ b/dataprocessing/readtools.py @@ -2,18 +2,22 @@ import numpy as np import pandas as pd from .timeseries import * + def read_timeseries_Modelica(filename, timeseries_names=None): from modelicares import SimRes sim = SimRes(filename) - timeseries_list = [] if timeseries_names is None: # No trajectory names specified, thus read in all print('TBD') else: # Read in specified time series - for name in timeseries_names: - timeseries_list.append(TimeSeries(name, sim(name).times(), sim(name).values())) - return timeseries_list + if not isinstance(timeseries_names, list): + timeseries = TimeSeries(timeseries_names, sim(timeseries_names).times(), sim(timeseries_names).values()) + 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):