prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [FEAT] Visualization of Regression Systematic Error box plot unclear
  **Is your feature request related to a problem? Please describe.**
  Visualization of Regression Systematic Error box plot unclear
  
  ![Screen Shot 2022-01-06 at 16 14 53](https://user-images.githubusercontent.com/26321553/148396690-7115e4e1-c81b-4458-81c7-f0d074db6990.png)
  
  **Describe the solution you'd like**
  Labels to be shorter and not sideways. Also labels are unclear.
  
  
  --- 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         fig = go.Figure()
  55         fig.add_trace(go.Box(
  56             x=diff,
  57             name='Model prediction error',
  58             boxmean=True  # represent mean
  59         )).update_layout(
  60                 title_text='Box plot of the model prediction error',
  61                 width=800, height=500)
  62 
  63         display = [
  64             'Non-zero mean of the error distribution indicated the presents '
  65             'of systematic error in model predictions',
  66             fig
  67         ]
  68 
  69         return CheckResult(value={'rmse': rmse, 'mean_error': diff_mean}, display=display)
  70 
  71     def add_condition_systematic_error_ratio_to_rmse_not_greater_than(self, max_ratio: float = 0.01):
  72         """Add condition - require the absolute mean systematic error to be not greater than (max_ratio * RMSE).
  73 
  74         Args:
  75             max_ratio (float): Maximum ratio
  76         """
  77         def max_bias_condition(result: float) -> ConditionResult:
  78             rmse = result['rmse']
  79             mean_error = result['mean_error']
  80             if abs(mean_error) > max_ratio * rmse:
  81                 return ConditionResult(False,
  82                                        f'mean error: {format_number(mean_error, 5)}, RMSE: {format_number(rmse)}')
  83             else:
  84                 return ConditionResult(True)
  85 
  86         return self.add_condition(f'Bias ratio is not greater than {format_number(max_ratio)}',
  87                                   max_bias_condition)
  88
  ```
  --- 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,14 +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(
  +        fig = (
  +            go.Figure()
  +            .add_trace(go.Box(
  +                x=diff,
  +                orientation='h',
  +                name='Model prediction error',
  +                hoverinfo='x',
  +                boxmean=True))
  +            .update_layout(
                   title_text='Box plot of the model prediction error',
  -                width=800, height=500)
  +                width=800,
  +                height=500)
  +        )
   
           display = [
               'Non-zero mean of the error distribution indicated the presents '
  
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,14 +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+        fig = (\n+            go.Figure()\n+            .add_trace(go.Box(\n+                x=diff,\n+                orientation='h',\n+                name='Model prediction error',\n+                hoverinfo='x',\n+                boxmean=True))\n+            .update_layout(\n                 title_text='Box plot of the model prediction error',\n-                width=800, height=500)\n+                width=800,\n+                height=500)\n+        )\n \n         display = [\n             'Non-zero mean of the error distribution indicated the presents '\n", "issue": "[FEAT] Visualization of Regression Systematic Error box plot unclear\n**Is your feature request related to a problem? Please describe.**\r\nVisualization of Regression Systematic Error box plot unclear\r\n\r\n![Screen Shot 2022-01-06 at 16 14 53](https://user-images.githubusercontent.com/26321553/148396690-7115e4e1-c81b-4458-81c7-f0d074db6990.png)\r\n\r\n**Describe the solution you'd like**\r\nLabels to be shorter and not sideways. Also labels are unclear.\r\n\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        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"}], "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 = (\n            go.Figure()\n            .add_trace(go.Box(\n                x=diff,\n                orientation='h',\n                name='Model prediction error',\n                hoverinfo='x',\n                boxmean=True))\n            .update_layout(\n                title_text='Box plot of the model prediction error',\n                width=800,\n                height=500)\n        )\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"}]}