Example #1
0
    def plot(self, figure, plot_context, case_to_data_map, observation_data):
        """
        @type plot_context: ert_gui.plottery.PlotContext
        """
        config = plot_context.plotConfig()
        """:type: ert_gui.plottery.PlotConfig """
        axes = figure.add_subplot(111)
        """:type: matplotlib.axes.Axes """

        plot_context.y_axis = plot_context.VALUE_AXIS
        plot_context.x_axis = plot_context.DATE_AXIS

        for case, data in case_to_data_map.items():
            data = data.T

            if not data.empty:
                if not data.index.is_all_dates:
                    plot_context.deactivateDateSupport()
                    plot_context.x_axis = plot_context.INDEX_AXIS

                self._plotLines(axes, config, data, case,
                                plot_context.isDateSupportActive())
                config.nextColor()

        plotRefcase(plot_context, axes)
        plotObservations(observation_data, plot_context, axes)
        plotHistory(plot_context, axes)

        default_x_label = "Date" if plot_context.isDateSupportActive(
        ) else "Index"
        PlotTools.finalizePlot(plot_context,
                               figure,
                               axes,
                               default_x_label=default_x_label,
                               default_y_label="Value")
Example #2
0
    def plot(self, figure, plot_context, case_to_data_map, _observation_data):
        """@type plot_context: ert_gui.plottery.PlotContext"""
        key = plot_context.key()
        config = plot_context.plotConfig()
        """:type: ert_gui.plotter.PlotConfig """
        axes = figure.add_subplot(111)
        """:type: matplotlib.axes.Axes """

        plot_context.y_axis = plot_context.VALUE_AXIS
        plot_context.x_axis = plot_context.DATE_AXIS

        for case, data in case_to_data_map.items():
            data = data.T
            if not data.empty:
                if not data.index.is_all_dates:
                    plot_context.deactivateDateSupport()
                    plot_context.x_axis = plot_context.INDEX_AXIS

                style = config.getStatisticsStyle("mean")
                rectangle = Rectangle(
                    (0, 0), 1, 1, color=style.color, alpha=0.8
                )  # creates rectangle patch for legend use.
                config.addLegendItem(case, rectangle)

                statistics_data = DataFrame()
                std_dev_factor = config.getStandardDeviationFactor()

                statistics_data["Minimum"] = data.min(axis=1)
                statistics_data["Maximum"] = data.max(axis=1)
                statistics_data["Mean"] = data.mean(axis=1)
                statistics_data["p10"] = data.quantile(0.1, axis=1)
                statistics_data["p33"] = data.quantile(0.33, axis=1)
                statistics_data["p50"] = data.quantile(0.50, axis=1)
                statistics_data["p67"] = data.quantile(0.67, axis=1)
                statistics_data["p90"] = data.quantile(0.90, axis=1)
                std = data.std(axis=1) * std_dev_factor
                statistics_data["std+"] = statistics_data["Mean"] + std
                statistics_data["std-"] = statistics_data["Mean"] - std

                _plotPercentiles(axes, config, statistics_data, case)
                config.nextColor()

        _addStatisticsLegends(plot_config=config)

        plotRefcase(plot_context, axes)
        plotObservations(_observation_data, plot_context, axes)
        plotHistory(plot_context, axes)

        default_x_label = "Date" if plot_context.isDateSupportActive() else "Index"
        PlotTools.finalizePlot(
            plot_context,
            figure,
            axes,
            default_x_label=default_x_label,
            default_y_label="Value",
        )