TulipaEnergy / TulipaPlots.jl

Apache License 2.0
0 stars 1 forks source link

Create functions to plot storage level for both seasonal and non-seasonal #15

Closed datejada closed 3 months ago

datejada commented 4 months ago

The output results to plot are:

Here, energy_problem is an example; it will depend on how you store the solution of the model after solving.

datejada commented 3 months ago

Use the following code as a reference:

# plot storage level
using Plots, DataFrames, StatsPlots
plotly()
df_storage_level_inter = energy_problem.dataframes[:storage_level_inter_rp]

unit_ranges = df_storage_level_inter[!, :base_period_block]
end_values = [range[end] for range in unit_ranges]
df_storage_level_inter[!, :time] = end_values

@df df_storage_level_inter plot(
    :time,
    :solution,
    group = :asset,
    legend = :topleft,
    layout = 2,
    legend_font_pointsize = 6,
    size = (800, 600),
)

using StatsPlots

df_storage_level = energy_problem.dataframes[:lowest_storage_level_intra_rp]

unit_ranges = df_storage_level[!, :time_block]
end_values = [range[end] for range in unit_ranges]
df_storage_level[!, :time] = end_values

@df df_storage_level plot(
    :time,
    :solution,
    group = (:asset, :rp),
    legend = :topleft,
    layout = 2,
    legend_font_pointsize = 6,
    size = (800, 600),
)