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()

```

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 '

{"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"}]}