prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  The mean value is not shown in the regression systematic error plot
  I would expect that near the plot (or when I hover over the mean line in the plot), I would see the mean error value.
  
  ![image](https://user-images.githubusercontent.com/20860465/147750874-cc7cbc36-bd0d-454a-817f-236f519abfa2.png)
  
  To reproduce:
  https://www.kaggle.com/itay94/notebookf8c78e84d7
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `deepchecks/checks/performance/regression_systematic_error.py`
  Content:
  ```
  1 # ----------------------------------------------------------------------------
  2 # Copyright (C) 2021 Deepchecks (https://www.deepchecks.com)
  3 #
  4 # This file is part of Deepchecks.
  5 # Deepchecks is distributed under the terms of the GNU Affero General
  6 # Public License (version 3 or later).
  7 # You should have received a copy of the GNU Affero General Public License
  8 # along with Deepchecks.  If not, see <http://www.gnu.org/licenses/>.
  9 # ----------------------------------------------------------------------------
  10 #
  11 """The RegressionSystematicError check module."""
  12 import plotly.graph_objects as go
  13 from sklearn.base import BaseEstimator
  14 from sklearn.metrics import mean_squared_error
  15 
  16 from deepchecks import CheckResult, Dataset, SingleDatasetBaseCheck, ConditionResult
  17 from deepchecks.utils.metrics import ModelType, task_type_validation
  18 from deepchecks.utils.strings import format_number
  19 
  20 
  21 __all__ = ['RegressionSystematicError']
  22 
  23 
  24 class RegressionSystematicError(SingleDatasetBaseCheck):
  25     """Check the regression systematic error."""
  26 
  27     def run(self, dataset: Dataset, model: BaseEstimator) -> CheckResult:
  28         """Run check.
  29 
  30         Arguments:
  31             dataset (Dataset): A dataset object.
  32             model (BaseEstimator): A scikit-learn-compatible fitted estimator instance
  33         Returns:
  34            CheckResult:
  35                 - value is a dict with rmse and mean prediction error.
  36                 - display is box plot of the prediction errorד.
  37         Raises:
  38             DeepchecksValueError: If the object is not a Dataset instance with a label
  39         """
  40         return self._regression_error_distribution(dataset, model)
  41 
  42     def _regression_error_distribution(self, dataset: Dataset, model: BaseEstimator):
  43         Dataset.validate_dataset(dataset)
  44         dataset.validate_label()
  45         task_type_validation(model, dataset, [ModelType.REGRESSION])
  46 
  47         y_test = dataset.label_col
  48         y_pred = model.predict(dataset.features_columns)
  49 
  50         rmse = mean_squared_error(dataset.label_col, y_pred, squared=False)
  51         diff = y_test - y_pred
  52         diff_mean = diff.mean()
  53 
  54         display = [
  55             'Non-zero mean of the error distribution indicated the presents '
  56             'of systematic error in model predictions',
  57             go.Figure()
  58             .add_trace(go.Box(
  59                 x=diff.values,
  60                 name='Model Prediction Error',
  61                 boxpoints='suspectedoutliers',
  62                 marker=dict(outliercolor='red'),
  63                 hoverinfo='x',
  64                 hoveron='points'))
  65             .update_layout(
  66                 title_text='Box plot of the model prediction error',
  67                 width=800, height=500)
  68             .add_vline(
  69                 x=diff_mean + 0.01,
  70                 line_dash='dash',
  71                 annotation_text='Mean error')
  72         ]
  73 
  74         return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)
  75 
  76     def add_condition_systematic_error_ratio_to_rmse_not_greater_than(self, max_ratio: float = 0.01):
  77         """Add condition - require the absolute mean systematic error to be not greater than (max_ratio * RMSE).
  78 
  79         Args:
  80             max_ratio (float): Maximum ratio
  81         """
  82         def max_bias_condition(result: float) -> ConditionResult:
  83             rmse = result['rmse']
  84             mean_error = result['mean_error']
  85             if abs(mean_error) > max_ratio * rmse:
  86                 return ConditionResult(False,
  87                                        f'mean error: {format_number(mean_error, 5)}, RMSE: {format_number(rmse)}')
  88             else:
  89                 return ConditionResult(True)
  90 
  91         return self.add_condition(f'Bias ratio is not greater than {format_number(max_ratio)}',
  92                                   max_bias_condition)
  93
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/deepchecks/checks/performance/regression_systematic_error.py b/deepchecks/checks/performance/regression_systematic_error.py
  --- a/deepchecks/checks/performance/regression_systematic_error.py
  +++ b/deepchecks/checks/performance/regression_systematic_error.py
  @@ -51,24 +51,19 @@
           diff = y_test - y_pred
           diff_mean = diff.mean()
   
  +        fig = go.Figure()
  +        fig.add_trace(go.Box(
  +            x=diff,
  +            name='Model prediction error',
  +            boxmean=True  # represent mean
  +        )).update_layout(
  +                title_text='Box plot of the model prediction error',
  +                width=800, height=500)
  +
           display = [
               'Non-zero mean of the error distribution indicated the presents '
               'of systematic error in model predictions',
  -            go.Figure()
  -            .add_trace(go.Box(
  -                x=diff.values,
  -                name='Model Prediction Error',
  -                boxpoints='suspectedoutliers',
  -                marker=dict(outliercolor='red'),
  -                hoverinfo='x',
  -                hoveron='points'))
  -            .update_layout(
  -                title_text='Box plot of the model prediction error',
  -                width=800, height=500)
  -            .add_vline(
  -                x=diff_mean + 0.01,
  -                line_dash='dash',
  -                annotation_text='Mean error')
  +            fig
           ]
   
           return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)
  
verification_info: {"golden_diff": "diff --git a/deepchecks/checks/performance/regression_systematic_error.py b/deepchecks/checks/performance/regression_systematic_error.py\n--- a/deepchecks/checks/performance/regression_systematic_error.py\n+++ b/deepchecks/checks/performance/regression_systematic_error.py\n@@ -51,24 +51,19 @@\n         diff = y_test - y_pred\n         diff_mean = diff.mean()\n \n+        fig = go.Figure()\n+        fig.add_trace(go.Box(\n+            x=diff,\n+            name='Model prediction error',\n+            boxmean=True  # represent mean\n+        )).update_layout(\n+                title_text='Box plot of the model prediction error',\n+                width=800, height=500)\n+\n         display = [\n             'Non-zero mean of the error distribution indicated the presents '\n             'of systematic error in model predictions',\n-            go.Figure()\n-            .add_trace(go.Box(\n-                x=diff.values,\n-                name='Model Prediction Error',\n-                boxpoints='suspectedoutliers',\n-                marker=dict(outliercolor='red'),\n-                hoverinfo='x',\n-                hoveron='points'))\n-            .update_layout(\n-                title_text='Box plot of the model prediction error',\n-                width=800, height=500)\n-            .add_vline(\n-                x=diff_mean + 0.01,\n-                line_dash='dash',\n-                annotation_text='Mean error')\n+            fig\n         ]\n \n         return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)\n", "issue": "The mean value is not shown in the regression systematic error plot\nI would expect that near the plot (or when I hover over the mean line in the plot), I would see the mean error value.\r\n\r\n![image](https://user-images.githubusercontent.com/20860465/147750874-cc7cbc36-bd0d-454a-817f-236f519abfa2.png)\r\n\r\nTo reproduce:\r\nhttps://www.kaggle.com/itay94/notebookf8c78e84d7\n", "before_files": [{"content": "# ----------------------------------------------------------------------------\n# Copyright (C) 2021 Deepchecks (https://www.deepchecks.com)\n#\n# This file is part of Deepchecks.\n# Deepchecks is distributed under the terms of the GNU Affero General\n# Public License (version 3 or later).\n# You should have received a copy of the GNU Affero General Public License\n# along with Deepchecks.  If not, see <http://www.gnu.org/licenses/>.\n# ----------------------------------------------------------------------------\n#\n\"\"\"The RegressionSystematicError check module.\"\"\"\nimport plotly.graph_objects as go\nfrom sklearn.base import BaseEstimator\nfrom sklearn.metrics import mean_squared_error\n\nfrom deepchecks import CheckResult, Dataset, SingleDatasetBaseCheck, ConditionResult\nfrom deepchecks.utils.metrics import ModelType, task_type_validation\nfrom deepchecks.utils.strings import format_number\n\n\n__all__ = ['RegressionSystematicError']\n\n\nclass RegressionSystematicError(SingleDatasetBaseCheck):\n    \"\"\"Check the regression systematic error.\"\"\"\n\n    def run(self, dataset: Dataset, model: BaseEstimator) -> CheckResult:\n        \"\"\"Run check.\n\n        Arguments:\n            dataset (Dataset): A dataset object.\n            model (BaseEstimator): A scikit-learn-compatible fitted estimator instance\n        Returns:\n           CheckResult:\n                - value is a dict with rmse and mean prediction error.\n                - display is box plot of the prediction error\u05d3.\n        Raises:\n            DeepchecksValueError: If the object is not a Dataset instance with a label\n        \"\"\"\n        return self._regression_error_distribution(dataset, model)\n\n    def _regression_error_distribution(self, dataset: Dataset, model: BaseEstimator):\n        Dataset.validate_dataset(dataset)\n        dataset.validate_label()\n        task_type_validation(model, dataset, [ModelType.REGRESSION])\n\n        y_test = dataset.label_col\n        y_pred = model.predict(dataset.features_columns)\n\n        rmse = mean_squared_error(dataset.label_col, y_pred, squared=False)\n        diff = y_test - y_pred\n        diff_mean = diff.mean()\n\n        display = [\n            'Non-zero mean of the error distribution indicated the presents '\n            'of systematic error in model predictions',\n            go.Figure()\n            .add_trace(go.Box(\n                x=diff.values,\n                name='Model Prediction Error',\n                boxpoints='suspectedoutliers',\n                marker=dict(outliercolor='red'),\n                hoverinfo='x',\n                hoveron='points'))\n            .update_layout(\n                title_text='Box plot of the model prediction error',\n                width=800, height=500)\n            .add_vline(\n                x=diff_mean + 0.01,\n                line_dash='dash',\n                annotation_text='Mean error')\n        ]\n\n        return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)\n\n    def add_condition_systematic_error_ratio_to_rmse_not_greater_than(self, max_ratio: float = 0.01):\n        \"\"\"Add condition - require the absolute mean systematic error to be not greater than (max_ratio * RMSE).\n\n        Args:\n            max_ratio (float): Maximum ratio\n        \"\"\"\n        def max_bias_condition(result: float) -> ConditionResult:\n            rmse = result['rmse']\n            mean_error = result['mean_error']\n            if abs(mean_error) > max_ratio * rmse:\n                return ConditionResult(False,\n                                       f'mean error: {format_number(mean_error, 5)}, RMSE: {format_number(rmse)}')\n            else:\n                return ConditionResult(True)\n\n        return self.add_condition(f'Bias ratio is not greater than {format_number(max_ratio)}',\n                                  max_bias_condition)\n", "path": "deepchecks/checks/performance/regression_systematic_error.py"}], "after_files": [{"content": "# ----------------------------------------------------------------------------\n# Copyright (C) 2021 Deepchecks (https://www.deepchecks.com)\n#\n# This file is part of Deepchecks.\n# Deepchecks is distributed under the terms of the GNU Affero General\n# Public License (version 3 or later).\n# You should have received a copy of the GNU Affero General Public License\n# along with Deepchecks.  If not, see <http://www.gnu.org/licenses/>.\n# ----------------------------------------------------------------------------\n#\n\"\"\"The RegressionSystematicError check module.\"\"\"\nimport plotly.graph_objects as go\nfrom sklearn.base import BaseEstimator\nfrom sklearn.metrics import mean_squared_error\n\nfrom deepchecks import CheckResult, Dataset, SingleDatasetBaseCheck, ConditionResult\nfrom deepchecks.utils.metrics import ModelType, task_type_validation\nfrom deepchecks.utils.strings import format_number\n\n\n__all__ = ['RegressionSystematicError']\n\n\nclass RegressionSystematicError(SingleDatasetBaseCheck):\n    \"\"\"Check the regression systematic error.\"\"\"\n\n    def run(self, dataset: Dataset, model: BaseEstimator) -> CheckResult:\n        \"\"\"Run check.\n\n        Arguments:\n            dataset (Dataset): A dataset object.\n            model (BaseEstimator): A scikit-learn-compatible fitted estimator instance\n        Returns:\n           CheckResult:\n                - value is a dict with rmse and mean prediction error.\n                - display is box plot of the prediction error\u05d3.\n        Raises:\n            DeepchecksValueError: If the object is not a Dataset instance with a label\n        \"\"\"\n        return self._regression_error_distribution(dataset, model)\n\n    def _regression_error_distribution(self, dataset: Dataset, model: BaseEstimator):\n        Dataset.validate_dataset(dataset)\n        dataset.validate_label()\n        task_type_validation(model, dataset, [ModelType.REGRESSION])\n\n        y_test = dataset.label_col\n        y_pred = model.predict(dataset.features_columns)\n\n        rmse = mean_squared_error(dataset.label_col, y_pred, squared=False)\n        diff = y_test - y_pred\n        diff_mean = diff.mean()\n\n        fig = go.Figure()\n        fig.add_trace(go.Box(\n            x=diff,\n            name='Model prediction error',\n            boxmean=True  # represent mean\n        )).update_layout(\n                title_text='Box plot of the model prediction error',\n                width=800, height=500)\n\n        display = [\n            'Non-zero mean of the error distribution indicated the presents '\n            'of systematic error in model predictions',\n            fig\n        ]\n\n        return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)\n\n    def add_condition_systematic_error_ratio_to_rmse_not_greater_than(self, max_ratio: float = 0.01):\n        \"\"\"Add condition - require the absolute mean systematic error to be not greater than (max_ratio * RMSE).\n\n        Args:\n            max_ratio (float): Maximum ratio\n        \"\"\"\n        def max_bias_condition(result: float) -> ConditionResult:\n            rmse = result['rmse']\n            mean_error = result['mean_error']\n            if abs(mean_error) > max_ratio * rmse:\n                return ConditionResult(False,\n                                       f'mean error: {format_number(mean_error, 5)}, RMSE: {format_number(rmse)}')\n            else:\n                return ConditionResult(True)\n\n        return self.add_condition(f'Bias ratio is not greater than {format_number(max_ratio)}',\n                                  max_bias_condition)\n", "path": "deepchecks/checks/performance/regression_systematic_error.py"}]}