From 9f5992ac28a88cc6dd3838a2d009a8a6f43609d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20M=C3=BCller?= Date: Thu, 18 Jul 2024 14:19:19 +0200 Subject: [PATCH] feat: implement violin plots (#900) Closes #867 ### Summary of Changes This pull request applies the changes, which implement violin plots for tables and columns, while also adding corresponding tests as well as adding a section in data_visualization.ipynb. --------- Co-authored-by: megalinter-bot <129584137+megalinter-bot@users.noreply.github.com> Co-authored-by: Lars Reimann --- docs/tutorials/data_visualization.ipynb | 70 +++++++++++- .../data/tabular/plotting/_column_plotter.py | 68 ++++++++++- .../data/tabular/plotting/_table_plotter.py | 106 ++++++++++++++++-- ...test_should_match_dark_snapshot[empty].png | Bin 0 -> 8806 bytes ...uld_match_dark_snapshot[multiple rows].png | Bin 0 -> 12279 bytes ...st_should_match_dark_snapshot[one row].png | Bin 0 -> 8515 bytes .../test_should_match_snapshot[empty].png | Bin 0 -> 9161 bytes ...t_should_match_snapshot[multiple rows].png | Bin 0 -> 12170 bytes .../test_should_match_snapshot[one row].png | Bin 0 -> 8767 bytes .../_column/test_plot_violin_plot.py | 46 ++++++++ ...k_snapshot[four columns (all numeric)].png | Bin 0 -> 18125 bytes ...pshot[four columns (some non-numeric)].png | Bin 0 -> 21439 bytes ...should_match_dark_snapshot[one column].png | Bin 0 -> 15840 bytes ...h_snapshot[four columns (all numeric)].png | Bin 0 -> 18119 bytes ...pshot[four columns (some non-numeric)].png | Bin 0 -> 21415 bytes ...test_should_match_snapshot[one column].png | Bin 0 -> 15775 bytes ...k_snapshot[four columns (all numeric)].png | Bin 0 -> 18125 bytes ...pshot[four columns (some non-numeric)].png | Bin 0 -> 21439 bytes ...should_match_dark_snapshot[one column].png | Bin 0 -> 15840 bytes ...h_snapshot[four columns (all numeric)].png | Bin 0 -> 18119 bytes ...pshot[four columns (some non-numeric)].png | Bin 0 -> 21415 bytes ...test_should_match_snapshot[one column].png | Bin 0 -> 15775 bytes .../plotting/test_plot_violin_plots.py | 49 ++++++++ 23 files changed, 320 insertions(+), 19 deletions(-) create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[empty].png create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[multiple rows].png create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[one row].png create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_snapshot[empty].png create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_snapshot[multiple rows].png create mode 100644 tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_snapshot[one row].png create mode 100644 tests/safeds/data/tabular/containers/_column/test_plot_violin_plot.py create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[four columns (all numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[four columns (some non-numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[one column].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (all numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (some non-numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[one column].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[four columns (all numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[four columns (some non-numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[one column].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (all numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (some non-numeric)].png create mode 100644 tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[one column].png create mode 100644 tests/safeds/data/tabular/plotting/test_plot_violin_plots.py diff --git a/docs/tutorials/data_visualization.ipynb b/docs/tutorials/data_visualization.ipynb index 00c309193..1304d2cdb 100644 --- a/docs/tutorials/data_visualization.ipynb +++ b/docs/tutorials/data_visualization.ipynb @@ -332,6 +332,64 @@ "* The last boxplot, `survived`, depicts the survival rate of all passengers between 0.0 and 1.0. It is clear that box plot is not a good graphic display for such a variable because it is either a passenger survived (1) or died (0)." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Violinplot\n", + "\n", + "Like boxplots, violinplots are also univariate but can offer a more precise visualisation of the underlying distribution of your data." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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QRO9T88995wuv/xy/e53v9OWLVv0iU98QldffTXveVPFRMW78MILzRUrVow+zufzZltbm7l27doxz1+xYoV52WWXHXFs1apV5sUXXzylddrdRO/T7NmzzQceeOCIY9dee615/fXXT2mdGCHJ/M1vfvO+59x6663mWWeddcSxT3/60+bSpUunsDIcbjz36XCXXnqp+Xd/93dTVg/GNtH7dNCZZ55prlmzpvQFwaQFsMJls1lt2bJFS5YsGT3mdDq1ZMkSbdq0acznfOQjH9GWLVtGux/fffdd/e53v9Nf/uVfTkvNdjSZ+5TJZOTz+Y445vf79ec//3lKa8X4bdq06Yh7KklLly497j0FMH6FQkGxWExNTU1Wl1KVaqwuAMUZGBhQPp9XS0vLEcdbWlr01ltvjfmcz372sxoYGNAll1wi0zSVy+X0pS99iS7gKTSZ+7R06VLdc889+tjHPqaFCxdq48aN+vWvf618Pj8dJWMcent7x7yn0WhUqVRKfr/fosqAyvc//sf/UDwe19/8zd9YXUpVogXQhp555hndfffdeuihh7R161b9+te/1m9/+1t961vfsro0HOZ73/ueTj31VC1atEgej0df/epXdeONN8rp5NcWQHVbv3691qxZo1/84heaNWuW1eVUJVoAK9yMGTPkcrnU19d3xPG+vj61traO+Zzbb79dN9xwg77whS9Ikj74wQ8qkUjoi1/8ov77f//vBIwpMJn7NHPmTD3xxBNKp9MaHBxUW1ubbrvtNp188snTUTLGobW1dcx7GgwGaf0DJunf/u3f9IUvfEGPP/74MUMsUDr8pa9wHo9H559/vjZu3Dh6rFAoaOPGjero6BjzOclk8piQ53K5JEkmW0NPicncp4N8Pp/mzJmjXC6nX/3qV/rkJz851eVinDo6Oo64p5L09NNPn/CeAhjbz372M91444362c9+pquuusrqcqoaLYBVYNWqVVq+fLkuuOACXXjhhbrvvvuUSCR04403SpI+97nPac6cOVq7dq0k6eqrr9Y999yj8847T4sXL9auXbt0++236+qrrx4Ngii9id6n559/Xl1dXTr33HPV1dWlb3zjGyoUCrr11lut/DaqWjwe165du0Yfd3Z2avv27WpqatK8efO0evVqdXV16Uc/+pEk6Utf+pIeeOAB3Xrrrfr85z+v//t//69+8Ytf6Le//a1V34ItTPQ+SdL27dtHn3vgwAFt375dHo9HZ5555nSXbxsTvU/r16/X8uXL9b3vfU+LFy9Wb2+vpJHJb6FQyJLvoapZPQ0ZpXH//feb8+bNMz0ej3nhhReamzdvHv3apZdeai5fvnz0sWEY5je+8Q1z4cKFps/nM9vb282vfOUrZjgcnv7CbWYi9+mZZ54xzzjjDNPr9ZrNzc3mDTfcYHZ1dVlQtX386U9/MiUd83Hwvixfvty89NJLj3nOueeea3o8HvPkk082161bN+11281k7tNY58+fP3/aa7eTid6nSy+99H3PR2k5TJM+PwAAADthDCAAAIDNEAABAABshgAIAABgMwRAAAAAmyEAAgAA2AwBEAAAwGYIgAAAADZDAAQAALAZAiAAAIDNEAABAABshgAIAABgMwRAAAAAmyEAAgAA2AwBEAAAwGYIgAAAADZDAAQAALAZAiAAAIDN/P9tF2zgldg+rQAAAABJRU5ErkJggg==", + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "titanic_numerical.get_column(\"age\").plot.violin_plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Violinplots of all numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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79xW86U+fPhwREdHOz12796NkpISz14Q8WvLly/HmTNnkJSUhL59+2LhwoVN+tLq1KlTnW133XWXy76qTdG2bVunv2tuWjX9bWoSwTs/3xEREU43OABYvHgxVCoV7rrrLnTv3h1z5szB77//3qx4Xn31VUgkEvTt2xedOnVCZmYmfvnlF5f73vledOjQAWw22/Fe3LhxA2w2u07scXFxUCgUjmtrjsau8cqVK2AYBvPmzatT7hcsWAAAjrLvjveLVGvss/DLL79gxIgRCAsLg0KhQHR0NP7xj38AgMsE8E6XL19Gbm5unf+nI0aMAIA63+eNlauGzJgxA3fddRceeOABJCYm4m9/+xtyc3MbPa62q1evgs1mIzU1tdF974y1Jt6mxFrbjRs3EB8fD4lE4rS9c+fOLvfncrlITEx02nb58mWo1WrExMTUea91Ol2j73NLY28t6gMY4F544QVs3LgRM2fORHp6OuRyOVgsFh5//PEWTcdRc8x//vMfxMXF1Xmey6WPTCgbP348Bg8ejB07dmD37t1466238Oabb+Krr77CAw884LU4OByOy+0MwzT7XEOGDMHVq1fx3//+F7t378a//vUvrFy5EuvWrcPUqVObdI6uXbvi4sWL2LlzJ3Jzc/Hll19izZo1mD9/PhYtWtTgsXfWbDS2vSlsNpvT341dY025f/nll+vUItWoSUjd8X4R12r/P7969Sruv/9+dOnSBStWrEBSUhL4fD6+++47rFy5ss73e+3awhp2ux0jR47EK6+84vL17rrrLqe/W1OuYmJicOrUKezatQvff/89vv/+e2zcuBETJ07E5s2bGz2+udz5HdAcAoGgTu2k3W5HTEwMPv30U5fHREdHO/3tq9jvRHfzAPfFF19g0qRJeOeddxzbjEZjnRFMycnJuHLlSp3j79zWoUMHANWFueZXIiG1xcfHY8aMGZgxYwZKSkrQu3dvLF26tMEE0FVz4aVLlzw2oCg5ORlA9ee7ds1IeXm5y1/ZERERmDJlCqZMmQKdTochQ4Zg4cKFzUpowsLCMGHCBEyYMAFmsxmPPPIIli5diuzsbAiFQsd+ly9fdorpypUrsNvtjvciOTkZdrsdly9fRteuXR37FRcXQ6VSOa4NqK41uLOsm81mFBUVNesa27dvD6B6Gp+mlHt3vF+k4c/C//73P5hMJnzzzTdO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", + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "titanic_numerical.plot.violin_plots()" + ] + }, { "cell_type": "markdown", "metadata": { @@ -348,7 +406,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2024-06-20T18:48:43.336423700Z", @@ -364,7 +422,7 @@ "" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -393,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2024-06-20T18:48:43.660060600Z", @@ -409,7 +467,7 @@ "" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -445,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2024-06-20T18:48:43.776868800Z", @@ -461,7 +519,7 @@ "" ] }, - "execution_count": 10, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } diff --git a/src/safeds/data/tabular/plotting/_column_plotter.py b/src/safeds/data/tabular/plotting/_column_plotter.py index 1ba568525..3fd159f25 100644 --- a/src/safeds/data/tabular/plotting/_column_plotter.py +++ b/src/safeds/data/tabular/plotting/_column_plotter.py @@ -56,7 +56,6 @@ def box_plot(self, *, theme: Literal["dark", "light"] = "light") -> Image: """ if self._column.row_count > 0: _check_column_is_numeric(self._column, operation="create a box plot") - import matplotlib.pyplot as plt def _set_boxplot_colors(box: dict, theme: str) -> None: @@ -127,6 +126,73 @@ def _set_boxplot_colors(box: dict, theme: str) -> None: return _figure_to_image(fig) + def violin_plot(self, *, theme: Literal["dark", "light"] = "light") -> Image: + """ + Create a violin plot for the values in the column. This is only possible for numeric columns. + + Parameters + ---------- + theme: + The color theme of the plot. Default is "light". + + Returns + ------- + plot: + The violin plot as an image. + + Raises + ------ + TypeError + If the column is not numeric. + + Examples + -------- + >>> from safeds.data.tabular.containers import Column + >>> column = Column("test", [1, 2, 3]) + >>> violinplot = column.plot.violin_plot() + """ + if self._column.row_count > 0: + _check_column_is_numeric(self._column, operation="create a violin plot") + from math import nan + + import matplotlib.pyplot as plt + + style = "dark_background" if theme == "dark" else "default" + with plt.style.context(style): + if theme == "dark": + plt.rcParams.update( + { + "text.color": "white", + "axes.labelcolor": "white", + "axes.edgecolor": "white", + "xtick.color": "white", + "ytick.color": "white", + "grid.color": "gray", + "grid.linewidth": 0.5, + }, + ) + else: + plt.rcParams.update( + { + "grid.linewidth": 0.5, + }, + ) + + fig, ax = plt.subplots() + data = self._column._series.drop_nulls() + if len(data) == 0: + data = [nan, nan] + ax.violinplot( + data, + ) + + ax.set(title=self._column.name) + + ax.yaxis.grid(visible=True) + fig.tight_layout() + + return _figure_to_image(fig) + def histogram(self, *, max_bin_count: int = 10, theme: Literal["dark", "light"] = "light") -> Image: """ Create a histogram for the values in the column. diff --git a/src/safeds/data/tabular/plotting/_table_plotter.py b/src/safeds/data/tabular/plotting/_table_plotter.py index 4d6a253c2..fe7aa3fd2 100644 --- a/src/safeds/data/tabular/plotting/_table_plotter.py +++ b/src/safeds/data/tabular/plotting/_table_plotter.py @@ -119,20 +119,102 @@ def box_plots(self, *, theme: Literal["dark", "light"] = "light") -> Image: fig.delaxes(axs[number_of_rows - 1, i]) fig.tight_layout() + return _figure_to_image(fig) + + def violin_plots(self, *, theme: Literal["dark", "light"] = "light") -> Image: + """ + Create a violin plot for every numerical column. + + Parameters + ---------- + theme: + The color theme of the plot. Default is "light". + + Returns + ------- + plot: + The violin plot(s) as an image. + + Raises + ------ + NonNumericColumnError + If the table contains only non-numerical columns. + + Examples + -------- + >>> from safeds.data.tabular.containers import Table + >>> table = Table({"a": [1, 2], "b": [3, 42]}) + >>> image = table.plot.violin_plots() + """ + numerical_table = self._table.remove_non_numeric_columns() + if numerical_table.column_count == 0: + raise NonNumericColumnError("This table contains only non-numerical columns.") + from math import ceil + + import matplotlib.pyplot as plt + + style = "dark_background" if theme == "dark" else "default" + with plt.style.context(style): + if theme == "dark": + plt.rcParams.update( + { + "text.color": "white", + "axes.labelcolor": "white", + "axes.edgecolor": "white", + "xtick.color": "white", + "ytick.color": "white", + "grid.color": "gray", + "grid.linewidth": 0.5, + }, + ) + else: + plt.rcParams.update( + { + "grid.linewidth": 0.5, + }, + ) + + columns = numerical_table.to_columns() + columns = [column._series.drop_nulls() for column in columns] + max_width = 3 + number_of_columns = len(columns) if len(columns) <= max_width else max_width + number_of_rows = ceil(len(columns) / number_of_columns) + + fig, axs = plt.subplots(nrows=number_of_rows, ncols=number_of_columns) + line = 0 + for i, column in enumerate(columns): + data = column.to_list() + + if i % number_of_columns == 0 and i != 0: + line += 1 + + if number_of_columns == 1: + axs.violinplot( + data, + ) + axs.set_title(numerical_table.column_names[i]) + break - style = "dark_background" if theme == "dark" else "default" - with plt.style.context(style): - if theme == "dark": - plt.rcParams.update( - { - "text.color": "white", - "axes.labelcolor": "white", - "axes.edgecolor": "white", - "xtick.color": "white", - "ytick.color": "white", - }, + if number_of_rows == 1: + axs[i].violinplot( + data, + ) + axs[i].set_title(numerical_table.column_names[i]) + + else: + axs[line, i % number_of_columns].violinplot( + data, ) - return _figure_to_image(fig) + axs[line, i % number_of_columns].set_title(numerical_table.column_names[i]) + + # removes unused ax indices, so there wont be empty plots + last_filled_ax_index = len(columns) % number_of_columns + for i in range(last_filled_ax_index, number_of_columns): + if number_of_rows != 1 and last_filled_ax_index != 0: + fig.delaxes(axs[number_of_rows - 1, i]) + + fig.tight_layout() + return _figure_to_image(fig) def correlation_heatmap(self, *, theme: Literal["dark", "light"] = "light") -> Image: """ diff --git a/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[empty].png b/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[empty].png new file mode 100644 index 0000000000000000000000000000000000000000..d8e306a6599232a17de02cc486362bd25e454e90 GIT binary patch literal 8806 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

k~P_v?m1*ZNeS$BEz#OVkTNDF1QQ4 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 G_J0AKS$UoS literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[one row].png b/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_dark_snapshot[one row].png new file mode 100644 index 0000000000000000000000000000000000000000..c850594a99877c72424b134395a8edb3f5c25399 GIT binary patch literal 8515 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_snapshot[one row].png b/tests/safeds/data/tabular/containers/_column/__snapshots__/test_plot_violin_plot/test_should_match_snapshot[one row].png new file mode 100644 index 0000000000000000000000000000000000000000..adaabf42409d8134dfa9065079924c306c8fc4d3 GIT binary patch literal 8767 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/containers/_column/test_plot_violin_plot.py b/tests/safeds/data/tabular/containers/_column/test_plot_violin_plot.py new file mode 100644 index 000000000..e3dabb212 --- /dev/null +++ b/tests/safeds/data/tabular/containers/_column/test_plot_violin_plot.py @@ -0,0 +1,46 @@ +import pytest +from safeds.data.tabular.containers import Column +from safeds.exceptions import ColumnTypeError +from syrupy import SnapshotAssertion + + +@pytest.mark.parametrize( + "column", + [ + Column("a", []), + Column("a", [0]), + Column("a", [0, 1]), + ], + ids=[ + "empty", + "one row", + "multiple rows", + ], +) +def test_should_match_snapshot(column: Column, snapshot_png_image: SnapshotAssertion) -> None: + violin_plot = column.plot.violin_plot() + assert violin_plot == snapshot_png_image + + +@pytest.mark.parametrize( + "column", + [ + Column("a", []), + Column("a", [0]), + Column("a", [0, 1]), + ], + ids=[ + "empty", + "one row", + "multiple rows", + ], +) +def test_should_match_dark_snapshot(column: Column, snapshot_png_image: SnapshotAssertion) -> None: + violin_plot = column.plot.violin_plot(theme="dark") + assert violin_plot == snapshot_png_image + + +def test_should_raise_if_column_contains_non_numerical_values() -> None: + column = Column("a", ["A", "B", "C"]) + with pytest.raises(ColumnTypeError): + column.plot.violin_plot() diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[four columns (all numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[four columns (all numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..6a53a4db0d87699e8da5470af0e6f7af363f7f0d GIT binary patch literal 18125 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
jx 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 ZZrsH^to|@o4nS;9`X2Uf?am_?egIXoSN8w_ literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[one column].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_dark_snapshot[one column].png new file mode 100644 index 0000000000000000000000000000000000000000..977583dbb71f55e99b634a98100af53bc326f365 GIT binary patch literal 15840 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (all numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (all numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..fb87951ef1e74afdf9d254cd856eab4d8afd40ae GIT binary patch literal 18119 zcmd74byQVvyDmHzEh3>P9TG}ODAJ`!BhpBNDAKv;T7ZB`qlD58(nvQVt#mhnbV|p9 z^Gtv5-sjz8oPEACzB9ftzCYJob3XHlJFok?=R0L3nQQoz_z(nLlaqa-3PBhs2tv%^ z;eaa-`==HmNIFdJ$s={wgw1ImJN4hGm%F`NcgC3_-q3x9uIqd>$QN(27?u`hxV5M% z|4K+>(mlW-bC?gAfwai1kI~5vb=1wPV6Z59I4J+b98u61!7km#UPk$fO_N5YK_1%= z@8yT5rQ*Fu;j&CoZ>BfKMa7ejEKOf`I5_uy?cCeg6YO>Cam0vurHuhWC>}p0GB7VF zKnlWwAZ`K#F$6VnV@ZHZEyNH4f(Ru4Z~u^-c3V!w$HEXgnsQ9!#Gj)G4Gjf9y=aGr zhd+yX)g-z8x{@7?>-tUCwmvhjs6pp$l53j0f`W#&cJ5xUxMAh2cWq5gO#){U&-(;U zD51n+n9b|YhvcEz%L|vyu@cD-cb+=b$f91KpD&A#et&o4m3EAduI}*ISPqx>Zt&^4 z;pG=DuT=#lG9tTzc3Ka`SOfRmZ}Y`Vy~#y`O2SWfUG;iJj}p9(TjG>}<7tIXpUQ*&asYzERRn&5^1tfNhnck*8_C z*b({p!RxSw)8QhE;V&9WWLI{|NEoGa^79p?q^Q*}F;BKHFKnHV$dwt7?adn(gz>!Q zQHAw~I=J$tcQ8_XH4Ahyi#&g`v$3-Fk2YR7)t@ZIyUz!ZC2-!Fqp-HNo@n%GobkEz zst40Q?Qv;H4+|qixBHw24N76^trz*A^OQt(pCr1>xG9lg{~|56*U{10KV2_ccWFFJ zWLn)zzN~8trz-+eUETQF>s*CI@&Ab9N$>5Qw|njbc8u3?Nij$st4f#YdcVhZeYOH; z_4n1ZIY}&umVBLZ`G*f5!bi-+N{qMir<-dOeKcF7Yf~+is@ySu9b>EVMJqmfvJoB6 zlv`e|aWw1Gc<`W!y`a>ul@S3y{=-ap6gf|`8#hPul`>XYR z`vNQoiCtata;hF4weY}L68=^bWpW;e8~tGLgWP9cUykg@U&YE@C-a9SNeOWNzHj`i zjBUe7)?h0_FT1oJ;c!D!EKM#ddXd zQM1s@S$DovjT-9jpSP2PTuujK8!|k$s%3O5tW@;%69-#)Xc2wH`uh4hwax{c_4}$` z2YH5~YnSbzRN1(+t`gxQf8KI7o;%>mhRJ-k!OOzJVj$kOA$Pr~vB9PA2C6|xXq5>Z<|=%M+2ZI`F&7NC zi<9MY)1Q=Hd-1c#nz%N+=P|DY_3;*GV;j$3Sx;4|(0T6oc6E23O`Fbt3xH>LxG|pI zpDsgI^#*nJkdMy-T=q(0zjtrA^KNoJtod4oUga3RD9KFBy7`~{vqMGR2kh`jwJzJ5 z0@NcPS=IK-i@cuBo{m(K5(Xu5rjg*GfTaqYXEXXgFjx!Y0V#v4WzO3(1wh0`ru`T> zx?vG$1DkBrr`xVtMpxylHA%dQYZGC4wrd4V)q7N0SXw4>;-u);I-8##?<$covV*(c zjZVOK-5)w!7>Ay#sNBw7_IF%o7Px)=T~0+sMJ1>E74Y}mFyE6iU#i6kZxJeph^SUe zQ*!{CXW>f1NJBS0ts4n66Sw=2T0yt1SOaE{y5~TMV%I7h0;_Znf3vo>w*URcGlJ94 z4=qPl7C$`GG&j#x5=SFNFOCxO{E;&Tl_Q+ zEk1e!!CM6uO=#^B7C5PN717g`^!i?}Eyv_Riq{FLwOcjp3tm7kH8eDG3krTdaO4(R zkjoC9bN|ge^C@PnRme4ttXt`C+rD>U~FZd(#a|gJnZH6lAsb9f>Y|OGo;g+ z#n6iw9WDruiPfZK;3nndO;MXmqX}vNZ?$LuH$*dkyho_^+)i$acQzg`U> zGw9o_oGq-~ZaB-aZV#bI9~l`D>n*RSumD!we~Xctke!-vQf2B9v#NQy^dHB?o1D(i zn8j7ASQaNr$LG<9aWywsqfd_?xc8rJmYCQgu_{MYiYk(Op35ihW@ImkTw|K`QcgXk zle4hit`I$!E2F!MUN_2S$22k+K`3SqdMznX=N1+!0aJ}kUgooz5}5N0eLU%yqicRP zNlX1wdmxEVDZA?D8O=Dh#F(v*#}Z?)!LQ$9EA{^RKnVDR$)B=NI?hT72-2P2)2&ea z`nq@I&6OLlUCYY4^N^q4vL!I-O7`Az@934g2`PbrIC2B!qXv2AgITLFx;Fg@f{tbG z2Nr)7WjV>i;okduGr~_6_R^0ComW4kcZ<5TBO2wi284!Idw1rUw_U#T8Y8O*TRYw* zpQeO8R}B)np+tu1wlkB;iPjCRwQ-Acgr+KOli^@O)Z;Mc%NKdIEXDr7YgDjjlp6p$ zooBR@?%TH4BmC^?)2F9Jm#19l<96|pY_S8@0>egw>_lgsLa9z|-E3hsA%{`;ta%Ij zTdq1%;`$5sQM}HW#wK)XimxckiJoM33>y0_@T%EK6DnzwEGg5s=d-mCrt=E1pa zVllE=`Yt?gU5L)CVty>N(%A)}X?R-qxT`70&*;0(#Vf~p^%S+nW=Xoc!JkBxp*zd${demmT%D^zefjAJ-)4w;QOZ$v)|PqMu>_HV=m~h ztp8YXu7Z*KhF3)EgilAK>-_@fB{5;Pn2k^A1U_Fm%!`7R_HIDKj=oLJELsMiQtE|s z35A4ZyqZ{LMsI%<&MUun2gms5T$WoBmPGYBk>9!FAW5A0_1vjt|1u$QQ znQ`RGRth&@UO_Ps#|1W4Iuc4RgdnSwb+sP9Bi*~7NF2&MJo8ig%7?O=45IsDP=(9a z!(?+H)3;i%P3^WGLsjAFT#V&4i+Den`kxPIDA1>HeRG=!W@as9@Q&ip#FpnFw-7XN z{Nv`cngwtZ7Jg=&lFdJjG+0O;MoM)p7MAp-d2;IxG#!XA%U|CHDIoQTfNhEK%RLoA?$h7 z1LZ(Rcj9kj5II;aMf&b1ju=_?U%S7_3|!~2r@fA*Ki_}#eo%@+JwrHEz3a?)a+?t8 zpj-9Wc%Nwd29!9z&qcd6_uIX%zdx0|u4weif7sj^=tp=b%j%JDE7^WWE8Ncs(%)LE@of;kT4j@OsXLC08eGH!+=J5p(Rr6 zZJUPh7ZBdR%+Jh}Iy>AP{Pa3${7er7ol8ICo!V(!SZ)QglHwn@Jr$q^0SPBkh522c zkLaDm7@(pL-K!oPv~B~nVkKEw07_h<@d|sk$R5#G$}z$yNr#(mpE(%g*NhsJ>g*tE z*uk#<)5Y$Uq+4Z|sw8&u61^fLF2r^&7~0e0L3kb7TOwx6KaL|3!b4&A(<-nX zMihrV>cZ74NypLg>!8#M+2+r9j=b!r>RKP-z(xxZhvub~Ri&KqT3~S} zR**+ZG&1O4VW!wErrEo!TUWlD?Yrq5afm_)?CP7VLm|k!AG5+`#5wX_JMe7`Cd%5^ zN)a*EO>WbtQep}WMY9}RlZWD?c*O_;`;9$#{1&ZgrsZ0zje0Z#T)u+vg_mr*J85K=-Wmc4(>yZML$ghbYRuX}j$D@%6m`0M4{yk!6 zRvPN+IW;vpdrLnDsch?bRxBy0sBYq6or>JA&t6rw-w#mSVYVjn^A|_9sjewi33m+Q zHgo;zL_Q))a3nnEtEDXvAriz8Nz0Wg(J1YhF8ZtKL5BpF*fQf&Y)m4A>u}3P=`!+SjM~|f$rr-IM z^G_~A73Jk}QPQE54_BONXlPEq-xW)pn9$L8=wx<37}mm_76bBq{oTIXOSVt)>}yTd znscHhPjpH$YM;4P>%SIRJsk|}NEnTg>5`%QsBp=6z`;xOGA+WXbp(o2$}WG|c|FnR z;>3UEqxYZ1&eImUi`es(ZVj^`mfY|N|N#BI`-slb658&Cck zM>)_U$~Y8)$+$*poYu?C2k$&h5a3xqlFd|g{~fKx>%1|h7d*(NX(+>&!zDRN@r*5I z?$FqKVJX;sY6jPdxeCG>UuEe_(dZ%h3N`@55bnqGK^iJ5sr4R5@=;(P)ip;PzYF+W zcqZC?yJBHx7Quvukq|h+gG0X{LYe_Mk*WtFh)$WAN@1(u`&ZiU+gAG`t9xAKbIUT7 zx#y57B0;|m&vVyX+)$aVx3hyCNGp#XC8$VL2)&>c#IAGrEiX3!!pE`Yle4YbXS3%^ z{LFG7iY)YN4#%M)q7})p^;*}RsC6ll4x`Tf+9RaUD}Gt0B>4NIUa;dw@EUU*rie@s zKxw>cRU&HvetBA0_01GDkX4&EXG)m0^+dlyFiJIYgg!VzKNc;bmzI{q#An^t3u-_X z>p1Ns{rm!3l7tx|ys~$B-d%v`LwiN=7p4SyAn&Szc#RGJ_mNF~LnE2p$Fs;6ctW4} zBFaH9;2JgW+~}|;BEfHhe?2gbc)axz5kVqB@F;c3=olWUKsb_Z#Y-Ly5+K4mJWK&O z{0&5?0G(&J7vEx?4+YTcKDftJuQP=sO$mhpGlV7E;K#P07tpPf z9zrxx;1^<-*BaRx`ot|kcNtTm7jn#Tm&+a@e@ufOD3gDAtZ2CB1a183 zK(o&)4JH4u_eD{>c*mQrqrKB5`f*+?V8zE1js!Ze5!{Y?&X8Q|aAU;zlQRl*JPN^l8&Z58 z?1qPKZ=+yYWSjLTz92+Vd)>wzN;WaMNd9yjPe+9t(Qz{y71RMXK;eBt#=uDUuU;nqw_H2EMogZ68noNwah^xC?E*B=D zj()NY35c5dDDWX!cQZkl7+y64L`b4#*i4v!LHk_DIydyHLaSj9{wr-JEhC8BdZTJS@hO+k`96^yH?;_ZRtz)q z-Z9Pk0`MS`TT|}zJl^N7)1G@jEzHgPgSi@Vf;nqsWAz-~8F(EG`$hZyHvAEzsBQ6@ zb`G`TZxrM?lAcyq|Fy-;vsiK<^T2Fts@lu@qLs@#6`sNRNP*D7klIyM93{jrBi_QU zffpc!l(!LeeN(ykmG;CLi#xd`i#v#{;k#PyN6jLG0yEw(0M+!{_;BJAL5@wUcz?6U zU&d8I4EMIDFh)ncoG~uH&$~ttB7DiqQ*&{t3?!l}bXp%-{ivq2>N5G9BkMWG$eAP4 z^-lBIAD907{US{g^gxaEf*#?G`3j;W=a#~#X6Bc;b~``ZwFD{Y>E!H1*0$%euuid& z@5M>4&ta`K@N~d_xYL!FmkVyjN7Bivvb|y*_$ks9{*@ybd%*ZA#vC!X5JEUZUoTu< zUY^%{fGN>wL>t(czM)(-r?bt_{QmXvuuTVPS%)q-=}}H zWARW;^ix6@RaWEoe3ri*AV|ad1Kgjisr}G52g4lYLEfXt2JO*IW;YoE#i3-3gVcEwf z)9c%|v}r^;qt6;IYhfTIE~sQ*$ZC9nRrWIxwaW5?Y|7 zIT}7I?QWFpTL4U`OCrwoyeT zXPTN&>5Wk4XxaOJ|~^>}{Uk>lM3+-YZke^^*sZ|>5C zp6|4L$;nwslvDw-TUvTwZs7c6&*|HhyE&<;kD`#9<)ao8W#%=%V|006_fQuY)a!6H z9H#*UJPCvm!I8kux(_i%%I7^;+E^8>O1^>U3-uz#4FjjYuG+(h0tllz0H-+Xb{>b) z2v;2K&iNA^+U#xBZd>#wiPnoJgHiyD{(>q`7O7JvCK_+Sf%#)x#cSehC`+f)gF$Hdn ?yH$K`vVG&(`eL6 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 D{9l!7 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (some non-numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[four columns (some non-numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..7f73a81ac3f4af63804007e29716a3c576d73f05 GIT binary patch literal 21415 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 PbR-|)?u<0*O;ODsh>upu literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[one column].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violin_plots/test_should_match_snapshot[one column].png new file mode 100644 index 0000000000000000000000000000000000000000..ecf84738bc731e15d41ded4ad002beb11a9349fa GIT binary patch literal 15775 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[four columns (all numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[four columns (all numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..6a53a4db0d87699e8da5470af0e6f7af363f7f0d GIT binary patch literal 18125 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
jx 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 ZZrsH^to|@o4nS;9`X2Uf?am_?egIXoSN8w_ literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[one column].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_dark_snapshot[one column].png new file mode 100644 index 0000000000000000000000000000000000000000..977583dbb71f55e99b634a98100af53bc326f365 GIT binary patch literal 15840 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (all numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (all numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..fb87951ef1e74afdf9d254cd856eab4d8afd40ae GIT binary patch literal 18119 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 ?yH$K`vVG&(`eL6 zr7^D3@BO#LP^2$X$6{OQ%a=O4BW!0Ay6+IyMpSRj;^e|d;%mfwDYOT`Gki)b+^I*L z5ko=r-}|mv5ogfKtySZ4N4%5eM?{?C)-FEiKIVf4>{|$_Wo7kuNv}#UnqW!fzTLhy z#+01i*>DZTD>3E^jXfx#>rj8qk@=)+0~4o#-zZl3Efn{Vl76Gf7mHD-!yss04F|&) z@*=j1>=grUs#sugGCUB2t!w$=F>Uj?_{+RRq4YG7u&E|$tft#Wi#X163JE>b<0eCK z{xU#S4>~Fzek73?YuK z4En&X{r-h0k)#@biub{OZuNBawjTU{{~z1Id}sD!Lxq|kaTS+{IW=NX3f2Bwxc#`o zg%SEjXgr8%G_|2bEjem_+>H4;H6qV*^!DsXpAomw`N}ni8w8(4!|%o@vPR$cU=R=N z+4slApm&JgM&KEaDi6xoM#S4ij%VA|{4x!nqvy{WO&)l0O1BsY#bJWmjNQ?zymgo| zHmc?d(>R7#tWFV34q7@1vqFpOw4AezBFFKo2SLzVy-(DTWHYqh&v18MB%I*}>IoMct1=XPuJMZ)sgaI8cXb?{EdST&K^Pszh z+eA^3jDtiBUGhIJ2%Gx?9{bi6J)U2G^JGDiQ?W?ABx5|0-{JM?qc^L#k>oXxhiD9O zo9t9%Z{L}Jfro*}9h%EK26)kc>CtrYqp5w!?D!E=U|}8P)IN$(j_MM`Xd(W1Gl-O+ z=4dVzsM_mfuL_W0tLy6*xa}>ihVsu8Z=#>lRr`u6f(UWt`}{L33965=q=Ncbt`U>r zQ^{V3+HjE%L;@34_UYH(z2R&)egW`v-5GIX*Y;~3-_=Z?F|G(kAZti>(jLDgo6S!D zQ(P?R&(KzgyxrP0tHIw;Jjtct1hvSwS$E|g=;PrO|r`}h#5Cri|s^$THOSEr^t_IPr0>&1gzT)UO+UU8b@;|Ml&ynw*Xzs~m?ZZm>wm{zaJ+h%vQfq#GUgEx zUzIyF0Y0pYF$bqvE?auQLMr)6NUV<*(IL;4mQ1lReA8(GW?!Bz;DzOn;KX{QDIY9} zEqGem@~buYU?n|#4WKgpu+^U8q$bQOEiLUe;WqEyP@+1NTNZ?BsxKqK0u2IUF^qUA zhe4cD{-X7LzQIu&m8}_U;=y++H7O21OzHs7jV_L&)TFUjv-PuStg53KG^Xd8^Nyts0w6aAY5Dh zc9m;rti;5Fj!5h{<=*zQ3x8`poml+gOWB!YC0}7Ie=#DINqg8Zs0?N{p8w`L?KZqf zgL8e?`2b*;V{ts6R%r3izH1AzQg@$2HJ9dl)4^F?A}8gXMZlI1Q*P-G^en4g(EEWG z*!albUl=>hKvMr%#LZ#5cRA4|X~up1-ZaS1Kne04S*?(l2g7C!SXK#^e4A3C6Bt2eJH&w}F0BH_5QCR^$|r5kou?U8OIuuZkSB<=DF2z0Ox> z>}pPux{Svh0)4|7N^g)ROuu||DJ{s2-B~rV`kjkni~qBGzf2WN$BVuW?W(aVPE+Oi zw1~i)D`G`EF)D;1gjAzKS5PZNWT<_B$&r&t^~eWTt;{b-6D`-`c-;(e*JNeoU1*rk z>w3S}zLe`BsKLA z-B-O{zcmMn@M@6SxZq zQd(I-`B@7=0yiJTNzgaR3I>MMJg8b&^$#KABorz=?=}WNJW$y?EL4SH_s~A!seZ!C zMsL}wk4{tYPy#ltWBt0!lvEHiWy)%pOVzHM?+2Oe9X^{{!KyE%FWT>1w$LPq-7rT& z$kSM&*Td?6j>Ka~Ug_Nq-H48TQ}sa+=gSGcyr;v7b*fKU*xM#`LDiWz8&ot z@rJ;@=wL%V`et6jBqwF-z4Qhw2|1Izsoi!7W8&kl?KEl;x&18^`n@B6(L59eEBh7m zH&>M|<-vWTl^ienRUdo|lKk?^HnF@v;l2#c<7O255}#YBuJoG-9}_*^xhK#$aXQMB zygl+TB7}oWMdj__68Y51Jab{(ok$psj zKPd7BkiR;5SQ+4nF-OuCN)MfmUtydYKCWA;GBy@sAu!u7E`BeGWR<*$kMlfsr2X;j zqiNS~F(Wl@d!|1Vg|z^MMGaJuP7l_@Pd)?Jo9MRm2|uXiGoTm&tb3D1UP<~IyYW+r zWHwg(Qw!t^7HdweW+RlYma&A=)1n;!0L$GCS)?B>YEzG4TP!^(0rh48Yk;)DqV@ev z3hPG4Wu>2=9>@TDI9g#nSqAXodpc#ZRD4#&=>n3s@UVEpR2U2?`M()fdUsd+9B;MG z=AI)=jc{~)f*!b(6}7}55~eDN0bnkUuy)qbcQ(2}Z;xa;HtLGK{fJ^1Y6Y{N2iSk1!X&e#Z^- z1`lucgxVbEUPfl@GIsBuCOKyZBd9cDZswH^d1<)`JLHtS>b~_8COkQQHT^jN*V|Z> z=zt~q!Y)5dxmtm)H{o34HR)7uymZzPAR;plq3p@^s>Q-UgyymhUry59J8poh_A*pL zx43>LJ39i*Jb}&A(J)Ar)kEgC8T{9o{lZG}qB1lEz*CTUor-9wsin&@rGd0DI+_OE z{T`IiT3^(Q%P>UNMcbZt+~2gU6o*E{cS<+6&4V&6FXoXX?$fn%Un?44Z_4_FUR(=E z++2P`^2&YL{~NBv#52=B{ed`Y2C9png{fYC+eAN8VaX}c$aLQ}iv5Q*Fuj@0LW=nvao;Bwy|KnuvQ6XG;M)0i|Brz}8lpLfxWLWoDyPNa=#FQfk@^pE%+u&-#Tco1 zw`xN7>Wv+uq7liW7^;gXOVP!)P?)#0yOH15f*E_F7k-8O$9&Cl>m%d@(Nt5O_1i;C z{*H3AD<4!*c{Ih=ZW;Tl#b;u262y|fkvyf3&wS%u3$FEh&)t!<7EemVgsU$eM>e2j z#X?-XP5Uuu)McXFGIo2}Iqr}4-htq~egwcbe#!IihOsAC>Vw> zI=Q%z<&;T&{Xep0dj?9vFVD0`3-$9pJ$Su#yb!MS4_I7g+!FYWbOhH-9G#A)zj3FG z?j0X5d1cw{1q=X;h~u?$b zs3I_}3kKu%R|ny&sQ&y>OLW!CH z!UeU*-vFczJ$%4DLA1I2+)Ug*{o2ijYd3EqZ3!m;Pca1~IQ#KPj#O4d4Av?8$eyH9fh#%?wy~d3g#zHVC6RF1W2G2Bd@Tn5n zH9j+dfPsuZCy3Tv7NDd`WbH0y;uq3qom>;)mxAN)o``H!Es){|3{6Z-ET4>wXogZe z$eJCUvTM0k13>$7vwjA-fz|BfLf{Z>ea~1RmVX8BMTnqtKL-d*}4)-CZ3}UN&s*79|Cf18(A4jVKPRo_*ed zJ#S!zxy@CUih6ZoMNI(=o&S9cLSX5jzlN^uzZg1<|IPyb-~K_F0rE{>iIgK19i1=s z3vK3rU3t1`>yrl#COa4yS^SiaRg9D!?~A=;%U|E$$unJtkNIH)wVR=y^qt&%S%L1NsnpUIUAND}b*!9-^^ zW(exwS3*ceA^WAsRs*SQ`h>UZ($BUVXIFm#qc6e$rHw{w8L-N^16xGRc?H~l7lYnC zluq0L_%;y0RVHwP)`<>A4Ej@YF;4+4OiXCb5ldpfA9#Jh+6D0$1pRpny)^)w)<#fw z%98tVM^K*>o+`Kt1|yi{;2^Mt8QggC1bUN^2T*Xr}0oAI$*1CWPJ} zbegoTGzSD`J>b7kh^m{^uuF@>{OiX49}ZEZmJlv?Y)#j~ReZQ=XKzH`T?%s;!HKbw zFFwbI=4g_xpv7+TEa*;93j0o5<<69v!O;Hmif* zeUdt3AV!CAn!?s+=4bq$=afFK7pKAZXDVtK^3#a@#~|osFcjyH*0E&L0~R;dcnKH@O9QO_( z63|&fjsc2`+A*1E!1QdgD-o8|{7W*uX6nP6g`803?hx_>@AJQ+E=jto#FhlppVBi` z0nv&%ffEO;Qxc+1vy!=tpgX4l@PN3d zT2J4D!QMdvSh#8S*}*8r4cp~y1SG+Shmvfnd*Cuo_xoQzwM#jINhD$ghbXkztOfN6 zAV|a?ip#7hd=tg`EigV~aG+V~u^BY3(oPZ$eV0Mf-nAR;pp8}9s0sW5%r|(hknFqi~{<2vdQZ;euSD>a60b0oL zztZ}K9!Xz{%tPx449HF~45tZne85c*r|4~;qDV#=A?=SQrzmLU3T|9B7=TBR5(2>O zLr_Zsc}`2`3u-kXYy0dg;b!adcDe!(6qeeNOH%}wnd_o-#uYC zVVh84n7)!(g^s^V-EeQpzNG~;l0eX?!%HkX5N_2RPFTWiGeDV4_df$VF3|D=F+i%{ z1Drg&gQ7}q!y6E)S@1fftD{q9J1Yj~puokbs;ERJ0Yn`QoDtBHNY&i*?UiCs4hGog zftd5=ghufnhtpAAybVBM?}=1vGCcl9w%^5GwC`pEv{L9~@xwtn9a=V3c_nA`FLNhA zydYLy*J53s)U%Pi=5Qj~fY}2%^`eZ~T@0>sk;1H34RB>0m4ohS9qcH`9<$n0WTs*;t~(#FEG@(k{nC3 zxGxGpXh44OJ6Nm>C6R!jQyGX_LgbUCjLX343wm7r-H$cDeqdrja|?JVOo8t!kzCyP zU>5!0ml2Ji&m6B91j#T$gs8bWq7Y!2?07MZ#9wrN6f*fiv*-Vup`b^=Q4j$MTt^hs zanSwZ!qx7`liGDJitN?cp z=zPQzXv1HH!DnI327=s)q41`2aUaGxOsLNv+{sD0QweMfN4G-_IRpuWLC2|uuJY4Y zzzEv+U-1xu)-)2xgJy0&g@pV!P%>yN_$tp|B8)yDng$A1jcVb_}5d;%(%F&<*+QPw>4T z`Vqy9G3tINKGO1;_oQmBTtd(T3L2=ID}S6EjSaMQ@d&W?M}DPZysq&PBi^EE9!)FdmVw1NC@I4OaEchyOn*w{H> z{-5ko;AF9X%R(ZmfZPiFC21(kF65tcE_tq4@;v`&88i%#$e_nI5b=P-svJFcTdt%;eL8AhR)R`b913|!@^O9A=3 zzRRqaOXFk^Ov5wQJ%pJYur#9H>3xO$>DGgGuH?AOAVwZa0*E`5kr4%$2ZI~qUmpUP zzr3~2=g*%L#m1744xa^uGr|I8L@9$Y*Wh)=3)pj;pur1RCzu?~XEl}r^2DXT zER%Mr8uzWM)C4$xBNOa-S*Q*$MH0sfn3gW*&4RYCilimD0cn3wWlCt2O8pB-ciL=j z1fk^cP^b(^#j7B_{ay!+Ny&t#)2zvNl*UnlMoWJcL@|4kDo3Pq4Y?g)VXMk;tRi_J zhy^blgC6h}2nK<_$l_*$N+DjH!4WAm1jRMyK(e^u&D!F^UDR9zX+S?+ z7yv8)+@P=t{B#G_0TyJ0fkAJFwFXQ)7M8>u-ViXeS3>YmAc1<^9!5~+a`&UsS9)Hk zX%<{e-2E8ED&$11D|D~iv4j|ES_T&*ZKN+F1f@a1<^B2zWVLPj1ozVd3IWZzNMlJz zBO|U60xk7kJ_8zX%dsXR8qn=X;bZswaRk;Dsrvq^Le7%v%wh$z?bOv?E5(cI*wgpH+(B&U5DC9cCgGE#FaZn0^=xqTJPR(3F-(JY! zC0C>(drZa_1f6$|BDg7E?-NOmcCrA;&jvTGHbq{AV{Px>>tK(<^pN+xAZSjlfe`iM zQj#-A9D*AExIl`1z9uW=2rTG0x)GC}M!=!(C-?ydpn~7B`*LFSMN>--m`LLvYv|=Q z{;||}cPwb<_AE}*78WCa2Tisw*o;L$S<4k3yWQpso(%$O3QDCyXB%JPU=9=of5!7a zv#r|=EI6AZ<=!BE2FE%V3$lGeRsL9qBJgqNEW|A2rJ5sje6>mV1wM@8R zAUX$6tpCcY1%+>*1NGq`t9?}Y?7jmgRmQ*&BZRsXpoGZ&MVjdq*$V+pq2enQK*K<% zlkT<&@bvyR$)zh*k-}>vP*XUyAhwluOv6$Aw)u38lZB1V2EAk#}?Y(yeoM-z>f(C=;blrotu%6F(w8OuW--!sP~VN zQyu#D9hFakUUAPJ+O)!TD=FB+dUjN@=2pE8qpCK+B8KK<8aAgv|5kP|M2AOqQUM%3 z!P4YR!5eVEa}pTv|4-#Iu_VS)%Hm+rq61@PwuVg6yBNb03IdYYy;5b2`F9h+5C3K; z9n~SH!qTLt3Zb}8YFyZfZa_T9mTyv^8wx_z?KnZyO1NRv1nj97|ENX;3H72M$U{(u zCqj_s#{nSnfoeWL*MMpW)Mdy{T_=}pg~h(elP27+8QQDjW&#zcEldJv=icm*oyKoK z&_&RyYfIMy=N`L_Irp~oI#>@8WwS3P)YN`X2d#GSU@>+J+5x=={~MXx%l>BOzzh8m zO^U7k7!R7W1RUBZUI+4Y!Hy}GwX6S_lXSp0#)da^8`u`cplB9iJ3xfM|BoxJsq|$2 z^o%z%rP%J7_OSe8m!gnUJH>#~f=jLSNEFN_nFq1sD&+h!<+D2m#Es%X6oUn|R9CX& zs2E&Vm10!`k>|y0Md)J&sEvR*ljRk@+$VyJaMCg6K>CBz3}WIY(lG2Mprn?-SyJ-b zB!E&p;5Q{7dBsG(QEwe?T4^t~BgytbKy7v$kaW7r(?lT+cFla26>kdcCq8YODqIk> zWVi9;c_0%Uum3u4A$411hMA7tYk%uae-I0ge02Z##pU+~>!5 zt_waEP{F66sd+2qWA*xfBz&%S;{Y5Fw9M@bAqGV6W`@Q658N(fZGg`Y6s0jl2N%R! z5MkJVTRP8v4|aRb1MKF1*1X*S&>xlYPu06WRTXI8ak2?w2Ve#tuNI1fpWI=ui{u5U zX@hEL=_B%5oWe0FAk^qzn7dLT3Zw-zoL3Y_K_dL+3mcs3OSI{g5Y8!Q44QAw)awF1 z1^944Mg8{t0k+HL#P756X~mQLlhXvixv#I+hs#;q9oPpDw7s)|XT(iD1V|!#hZi8m zY9N%7x&Qm?(t_jtKe*5iL*PBIw*UOJ!M{P*J+JyKvgaOpgi#V>Zluj>8T zc=Dg3-C=eHzFA-a_iTY)eK=YJ38z_qnp6^=G{CuFT>=+0UNc<7eb7OwcQ z?*+)~Rsm;`{du(`2_9A%Xx#?dY}#c*`69V1nGUxA!%|IDFhwRaINmB+K4-c;(@6da8KxlrMkTy zH3bEQZS!9Ma?}kMzo=?BZsod_@go2*mt({l$zZ%_1l33;E|)!MVQV`Is3HG^dMb-Z z1ity@1zJ8+^-FH<>YgX~%!2_y{k;wMLTx=I&yKc7m&GsL0E+SQey(LT9{n z_Kdd=SETF{(9aJ58poWMCr6;~MF(`;)NGV?|1-An|0@_8WLSRO7Fat~3t?(3q^g#d zmdVS&0Y3zETW>?hmTUYgAO#*ulL}^%%TD&LN$byP0D<@VUGbB5evf=!u7IAr{WA~X zTK6|sW0&=EYQ_Y;sXkS06T?yg%7Gz7!#G&!HH>tWi%G8ZfuCKEe1Tk zEfw6xNFkVJ@?6F$|f1}_k8Rrltkw}W5+a!4fPVEF`CYD%y7 z;a8#M1V<#m%~&Zz;okqKjFY|P^*1+^lmQQ&$s7pP=}%klbhzUNF8!37v=dGPIQ_G* zi;XQY68>@p_}WMM(K0Nopo~HZy4CL}#-)HmTm`~CNOyTGBRBAHR4-k4t4b2CcU8}CpGx!EusU3%3mB1wXHWAQ{ z@WKdi%@B8@iX#XcAqfcnLHPf{M_GXR``7nf_AU{&#zP8cr!=YHA|xlJ^rY~yk>CFS D{9l!7 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (some non-numeric)].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[four columns (some non-numeric)].png new file mode 100644 index 0000000000000000000000000000000000000000..7f73a81ac3f4af63804007e29716a3c576d73f05 GIT binary patch literal 21415 zcmb?@c|4VEyY{`7c}&WXxrj=pka;KxnM%mqlFX5r2&)v8nar6oWD1#wWED|Dh76e_ zQ%L5S@4TPq-S6++d%t^szu))!{&*g(>0Z~m?&~_w<2;Vzyq;dwQlX(_p+pdbMosmS z4uW9u2!a_SCxvIkJBNNE$aP1xOBZy#UMvjzdg-nu9~|^)IPzkmkSmT6Ij5d@;;%3S z=y#A3xm@cq%ZjNXHSNszQxY=ta1Wi+R37Z_l`%SPlb@|Ge1&1&h}c%FSTOD3&l{aB zCmBh^pBgi|sGLhkTG#>vUaRzc)R$1#_#7+1Sw z1=6r)8Cmp(Ww4!=87kqdpr)NgBYpw_bpCM`qGXWeG`=Vv=dM}1S%WvG5o4CLuD?}zEDJltsmB+PJ8P9Dqned`Rw56zDH5&&HGCq)0NZJ5KRC3{GxYx zhZJ_N`qkfTYisk~Tk9)#p17Rs(sFvcJ9R&^px|t&(xbKrI-X=SPFM->#P&+{&8$?YRWxAqL$u z@$AH~TcUz2aqx!??hk?x%vBN0|L{P^gPnjA&JlXIc~MGA3htg&5D@`O-EbAwIV}6r zm4jv*^<}n*_p@?2_3y-gf`#5)b#{L9-5e=S+uPZ&|CV#jD(Eo7fEZGD%*H3SgktOl zf5zfy{mts?YF-s00;Q3$v7U*^oiBWR9od+f)4l6wEsqe2YE)fZU2V@|9=)+(I^)2C zAE7RjEA8WAhA}sW{NKj>KmVG)U*Vl1cG_B=OcXZ1IJ5QqO@ zipIpmWGziJ+Yi^co2Rk{rq?dMGgeksZfS4Vx3$fchxs&6BEeVrj6ERx=~7*0)A>?< zBR4lU^2;QpkENyMNg-84@=7bkSkASKRRYl=o8~a~fp@;Og;nE}Z3&_(i}eS7MLT!D zmng4HwRO`-45cN@c;>x*Yce@GIZ$qY!zT6S?l{wSPmy011Hb;v>&lU?vG)Ob`uf?0 zg@pzU@Xhz8lRZ~AC&KMNJfdhGmXMIR5gHnr-UnMc@ew&D%~OOAUuyleSMP>t)*FlF zUm>FH9k58R(;Pc@X|Td!&ix=uJ(riWrNvMzulwKsGEetBDJH!jM69$y^$CQkx}D#(-f%xo4EPUKIeY)g zeI;i8ff(Y=%zHA-U0M zX^Bq%F4{3}rM>VfMN-vb*|n9H`}g|dXpymFwKA)OV~E!Y6*V_Ije(sW1^R%#B95G>Q>ri zjB4C+IsA8*EY=0ip4D}Ab?vX1nzCYGWDJx)urt1P?OMM)OoCaeh_0UAV|Rhdii*6d zDlbC)^_Ofmi|1t?MOd!1OUOKWw6aZP^me-_Dl=$WD}ql>oL@(OHGJJM^s|J_v(3Rb z7D4ZJm(@+3-jk#|JWy0jlDOMz5iZAD)R$jYwtvum?%X-I{jF*HuPJiAzb)cmI^UWUruZu-}?%dTkb?bILaI7chYs(#pnS7!6_3xBzC)|T16v6)-u zXAb%5DYY<^Ef=gsr8i~K_yW<_)3cpwO_1LD84c+wTQ6Tf_uV@)*7J8Fc=U92XELL; zblly`d1hmc9Xr3}USI1_I%L~hV3_y%bRGBx7oKK`z8b#Za~T|FJ>z$)uitR?y5QOA15 zU>%A>#)E}=<3%joW;%}VEyvY=LqP!v6(f(FAHVIwOSwxfZeDwo#57serdC0>jzL(t z>9>`2=FFLI{rx#_-^yyn3txbdcdX8KpH$mfUx*&uTO)iqeLdTzCr_^iR*iczyQj^3 z{~M!P4+nz)??H#k+>8t*iD9>BT6XD7b)h=lxxS*xy$`tuK2^qnTdoTDOsS3(Zweew znBxX5hine(-M7~uMzEZ}6VI!em?>af!Q=j-jNw|$g%akbNRdq?GRs8vXO>me+~U`x zdVBRDgyv>tDMN0t3gTAVHnzx@SLnC(U=AB!BhlR&(o$1tBJZ?}GMTj%)ReP$WFlxk zOv%%-KqU@NMe&QzaoXx^`6Y}|^ixT?EPk))5{r3r* zgDQ6ia++-MUe>a1@%|j4{%qsDo9UUlo0m*wNBRay)E8`hm(PTzKj{J zcd9wCB$f5X?Q*tWoZPbK!K*25FunNgjP=Ss@J?x@qAs%;Es{AzOt0$OWfMl?tDnkoaemtA}~; z6iv#9Bwr44X8s`YClY2CeSp4~t4JY@R>Ve~i!?jrlk0nDQ%GU^(Hy_IQRO6u1wFKP;*mO; zZ?hI`X-d~Hk7CMXb{8Xwg)ihF*g7g<+Kx9~#7qT^vl2Y;13D(DggcJSkWC=T&79=t z1X*Ice*HO40k1gC6qg?4;3uR$NsUV`oPBmEI34?>$|6Fhqh6_iY(`S6zW;+at>+E{ zxpXD_35*6_DVYba=)a2zcoqRQ$Ok*>hVL=9^aM$Wc+&HhFQ}YksbicNWAP6dq_!5L zh=tpYs&X)gk7L}za2;1wDqZ;niUs*@WUC<)^K@U>ki+J=Jkv8X>-;nG;-2Q$+%VjZ zId(|o>^hlyd|m{%WOWPH-hOde#^WLj1&)p6VPHn{5v0>D{nl@Ct-=z*0QN$|o4M;z zNYgb~FSK=$2S3YaIQrn$@rHK8!$`D40ZWIA*f=ffq)m59%bB7R9EBi)(6(n9RJ=U0htAr=}Jy zFS{&^)YXn!WNRkz#(i;bwTDob?hExvjfH%wh{ffCAH3As2!=Gf{L6H|d({j4NgR$$ zt3dZv^EOG+c?TU!%PhgSe=ctA`3*Zav)3%Q@UKDIwfQslzK&z1OI;|pc4zKbDH$zW zN8{5Y;-0^UiubHq?yA|Md!$@CmuU$vlg=QW+N4U!4$B*9x z#yh=Jyvk0yJAoO`%7TOx|L{fsYf>MVTO`82Ef8ZPBOdmopKH^f`BK02+_>qh@v#`f z|JK$Pi-h9~$9G#+?2=Agg>RbF`Fj+&c&XD>HMI)z2q}LrH2YImOzu_(yia2kFv?UH ztiCjz;^TO!`R(5NARx22l>5t{ix)(#T077}E|f#gh|_=f&F`uS+O`)`*NrP3^^A-L zL`EmpyeHSZl@^VSjV*R8Uygkfe}wlkCs(#}xur+4ew$gv(O|hmw3YUx?RX-hudi>{ zS7_?J(k8(zKZTBZb7{i8Q<>?pLp=aBr2{!AG0;2!Q(E(DZf@=MUEjI*#oWTe-nxwu znLlF|gpX8DG=utt{JC;g#Ta>2PwFD(d|K+rMDKv0N!8V&x698)ye4QuS;Wu0w2+pT z)-^WHXLYRlQMHreF<>jb)Oe)a`fG}rLQ!6xj=H+~Ou7HTe$IF}i77#GK8G=ju|b$^ z=ZQdnbazuh(+h+pF#RzVlO0q>Xdxx;y*l$G+_cWS{H{lbQ51$_|V~veJLTG8ZBDXVNYE*6)18e)+w{Mx**}U!^9)at*IXPGL z^m;^^BQd! zj-9P-XPIrcuCDG;Z@Girm2_W#5U-k=nu;ep7Drx7jNUKp`#oA#CbqX$U!~^sn`9|?q8N7P=H|k`pLZOpk`HfdZ|?@UF2i=LyejVtYz#y^@5wzRaAc`OXbhl{vc26#a(k+B1y z#Xr#>b6F=+&d7+$9+FvOsOgzsP;Pr~414OCnzDE9qm{;~Q{;pCSFfgJXJ^ZY!xGgu zGc%ik;*;%q>*uL5%$h2VR*myDMl-j@u=zs7FOW>R;04{@euy<%^XfZ=jjw5`s zNmivrjphYK^)$yXp!aM@VeseXdz#U*NNFBzJTbaYsbr( z1HX+d+;G(YrEs{h=5+xLgw1gw23~#ky44=2FUstC&d9-DO_X$g`B(9>Fi?J2L3G$r z6*0HgN+4V!al+T!$3SYP=;)p7qfnX`UtgHXD)ctqw);I)4YZ1*3-(;3IdfPw{)D*H zBxxY!81mh+nv&qitYCFF`5hihdrax^w@cV3e$J6t`iwU7uM-;LTGd`B+@-P}YGNf7 zwYG>bQ47U!lu^l@=Rf?e*}HIWFSkDIB*hqV4MR*H#Pi`@4swD)GM(lGh7HlLCZi8_ z#O=6zczh(cs3B>)&x@XbNqay9^w?Fu8N+_LCTeFv=z&)?If1&pjQ4}7Y)!BPUVXd~7eu@Ww&E-QY z7lBe*=k1cFxS7A=@O~O_D$dcrB*gytVh%Du<-o0@nK$|<3b}l`=YR{zmmFHq-ZJ#c z<>|>k>6FqioV#amg`RNgS_~4!%`Dr6G;r9kMn2QoS_BM08E8HutWH4Gls*p2>ug=5 zn7%T3{s}w})BP~SnKUXpfHF;hIWV$|>5AlyGo$?x$mQcP2XqMkiQM8Kt($h?F%Mm{ zmfcg~BS8t1q&#|OB;Msd^5@IU(@hxyI6=aJA>+AW?TJqyoR4T>Qj;{URERH`GltPV zIQCT01*ZA!>4D8``d;MH8TB4Y2@2d%=5S&j>Z}rAIuOCAtm)stEVbH57+1knphf zoV2GRrE%|)d3dxp_N5XVyx2%gM_>!`&HcWa{VdF}o;mxeZfxGfff~Z?)~|vkkAFa! zR-W~1^VArB?zV&$mN~uQ^fnn{z^*;|rb3sUljQzMI@LCFS|0r2TcpA`+9IJ(CmI;x z3K{qmoi~)K@Bv+RBBURqr#SaAm_thu+aLVvmz}BCkH;;aKVS3nd)M;iOS#X+Z@=(= z;eZ}5STG0vez)Vuz`$@?M#eZRD+^^*Z_#)v0(Hh@fnd5bZ*8cb`9t!sEY#_dF553U zS8SDSH!sjUcEHgLz^1-0pIZ2K`HH)n+p3R=qhlcpE2~nGw!)s+{L24E5GjQj#R=tb z*>_^I&B+7Bv&NMV&uE^Zbyp2vqv|cX$+`Y6JNq&K4m3;&*3Os6hr3proH=`TeoeGN zcohcu3uxbOFQi;~)V|8DgiumaLbx?D^>cus99WU zp*p0OaONcH@9H|C#v*^;tA3}vvU2YEb**ba1wyr(u`%keu=;(Z&Zh@5V^>#KM+I6w zrpOusDhc)c)ZC-SM25@Lf@H(fbnyQ4!}s5eX$1=@aKg;rUMdH>eLfjC161pRYrXSC z(`@dml&&vA^#wp*>jV9BJzJv_{>iHbR8ABR!_lLU*l%3DO1C|4V^(zI_3PK>MPBB+ zhjD^u@V(#KxyQ!17Ebrlu(>ihX#>%R;-(Sc0Q@%iPoKU9bji%#e_=}`(o#)LOBde;Wno@?w$k&)>u zUlnfptj|YgcJvdbrlyMb5|fg4*dz?}^s-`OV>|2*_V}1ob#^XtbHTuzDYzwy`$O17uZ z9Xuaa_jRmYI1d|QCOgToD_tqb4XAs&z3sK;v&_jhy6lMkm`Pded0sr>!9bngq@{H{ z`(+d0Tv(cx@-5cZ*31_<@BKV1xBQ8Fk7ELu+uNV%;dk=H{<+n3W&d0ZDI7b`WQ<8Ypb zE>|}XX>vb4qx)@A^xz@U*b_njt4dw1b$8i8MB(rn!-TTS=tGR&s6VJfcM3|uzieT%(;Vv+CatHQ&CBF>bx$*?GUIKrkwB(F$Xg(4wKC@t%8K=>|oKJ&>f^ zV*!V}hbv*CA=*kWzFiS>|D}tHH7p{x9-*YApZ{gx)IgQGSTsI9erfm2wK*uPA5PwU z@Vuu}6C1w_)Ijg87}s;6qSq~&LONl|>B5$OdW6qzwkzxKzi#DO&-%Q)GeGY?GTYf$ z3|E;Eu^<(GQ8+voK69K|Uj^HLDBn#2Bl%&j@-oREoA)^3g4zlNU@~FLra;B9J^XcI z=}~Or)-Owv+;jUB%sGmLVvW0(&N37AhwE;Vk?K6{Jz7gz4e(!7=KsRu#jndWp3rMjz`Ox`5|f-@<-sg+95YYG zphz%!cp+DY?m6G^+rSNorMk+>k0HOn_I*Whgx3c49f(XdJhr3nd|hhmf15~o{Yi6t zyL1_2x8O`5?V!R*Y6tXu>_6A1}!omCk4cp1{lp2+{pCpT?7j zh&9OOI&~6_|8T0jc_C?hxZ<{RK? z&#w5g|K6Rm6gZ)W7nJr9ix4FLC6#2gv@a$lgn0F3TT_fPJ;BV$8B@?U&38= zmw}DHb)N^1&vGZ53DfxNskwDB2N~Pv#KlY@LfC>(HKWhUBy=-Lrq}f zmFQq%^f~^YJoq{&m<(7O#G?3^#lC%}#-(X{)Lnq-CW%%=>?ab+K6j5SFdZ_(Y+uI4 zU(69idZ#AYG+AW6x)4XDH_TN|PMlUld@jH>jJa^9KGnFXnfEPeDwYrfUiMvQ<-LII zr=nLRY~R1o-hI2+euFVW!$VeE74dmbtwh+C)Q)ZlV>-|EeZK0bMk@slHYLj5O#b|N zN(y*S_fTegHM4u7AorPkQ7?Q3wDJ<>_IVO6GM&g7n zf|*-!P2qhZMEAU}`M`S2YhF?pEq=SRHS-|PL8vPOEp_X@yy?Bkm|rt9Gb{11iO~A_ z?%Son3diBR@$p;eYumdkUmMnwL@WaTf>}VU2=+R0e{jWP<}51w#=kGUB#nO`7PGu+ zP>+LzW4>r_XNNLa>@prRC0_*R*5YIMZv@sI3@`eiN8!9CC*ZFIm7=A>xfW z#1Bai$&uZ`vz9lOPAJm|H=uRe1trJIFY{MVFm8z81q1}5GJiA#soZac|4*)Lg-K=q zH*P5H>*62pIy(mk8Xp?s;d;EBQz0)1`*g<|BBW~;+}|~dW2i|3jLK{x1*?D3C;R-a zKFqnXc(A|7BIS~KMO|HK5aqwDQ|>`Tbl=|k>R+gtbRHEXC|8&0HUZeeU3hHv@#9CL zZT4N=1H>3duR8vQl#5QPR+IQ?HC5FsU^<|-Q@;ybRb#X49|93b6MDYBbwFEO9E42w ztHVDWXc7qV9kZ`e3t_r_p^TND^2y7~EAv_!@7U?>?ZupYKz){M{y{p+Qxy`rCnmLh ze5dECb_|t=&fuw-1iyiJ|59SaODW@W=(Cx4GS2%~QA)ZWuoOI3a?hIv3@FRzAuIp*9N?MFBtc7b6t5^HInz z9TfRj1I6Y6@0LREvUwhSmEX|-qVOtcSp~;8g3&8c_os)xT@z1m)JgU6+Rcl$yb-p#E3pgoK46 z`)!Elph~@xa-BjQ3BYp%i~sbyriaWw_`&kjvNHG>u0rr8L0{?;D9Fo`UwXQ_UIJ1A z7U|TgH)vliAJiK zD5iF>cJtsQ$XoWG_Fm>8{Y2Atx1b~^Ee9HDV@SCakm(}WbtgWr>VaJJF z5_iI+2vPQ9C%Wk&cswzy?JG(TIM+tYeFC7-DP0D{=Z|Y?tS|(#;>U1LKU==#wsbI ziadC*v=#7c`8ziS4?J&5!24dsXi&%EF{JH+!vwf4#U2~7gF8_dmBE({^09Ll(?IM z-kyb_>g%xMP+G9iv^I+E-faUc>62vkc5b*Ds3Y?yZ9ZrY&VMg;@6o$q3rd>wM2P4r zisVo^8^W9Sus=YQM2K6C0REFf&97N}x8wGnglXnYGl#m%&&W3okEx2KWkQH}F!S$2 zf+_G1M0c_U=*V*_D)iae+0UFlJ?owd>{=f1fOm`y4HFS29devzJO^^aCc9ZV{b-9q3d78^=K#?KU6?1mIFocXzDdU zQ*YnC?Z~gHl5||!_(;nnK%gDCBb@MzxR@;E3`u{mq23OZcDd>47odoVMTzjXRE3+I z01!?5FN4p?$jIno5%@`(*LHlAHiYOngKGC;Z)R}~&m#qo1aSnj*1Q30ur9%tiURn? zJDcn|(%F@zz6Lf4&eFRe`$Fl}P$4cMkzZU~JevAr$?NBm*Eo|K@w~7jMKMuB1nmx% zW&Dj}qB2P_nH7d;{Z>p;1y1->QQzR4H7tX?{Cujx3K*k&Gj(F_Ft4^SGEexWbfzFF zF_CZvrX*6tq8}ZpRr`xv06vBe4h|?A3^AwNyn$3r2N0H)^ehh)YwA&s)su{x$C$q5LYT)Hyy8%q&)ylyeaCD7Y!5{6__}!K?safb<-L4) z5q3Y24&C6)D1%FDrplW}mE9ecuO7bXS*QVcI$!^F7ySNQncr1Ps7MS&t~&_8ymIUN zUVE6WU9pFXZw>ZxrFrmjK;zAS3^8W~4*GU|YF}R;XQ{(K__&8Bo*janvShg?h-*UD z6|v;~!R#rOwoLl<1{ja-St*qc6Uuz+`AM&P|;TzmAMCTh$vx-_FL{BYy(6EEt2~Mi$7r_v#%JQdJ z!z4nnMX)UxkR!>AYG5oVYX+4c{2CvqgmksE!oX*yXJ%G7Tx3U&-Fg`b^P~C5tAb2k8A-CbaY>zO&dZs0Fg}B&@k6wu)=ntDRg=3KB{+tyQXtm z#JJ*4=i7TLZVfaNHq-6N5KnI0yH^b~Im5s-Q~l;+zqS0EwjZA{pkYET}0+1K6M# zo`3j)%y)iHPTGR=FWon6YR$W6V1Q*Ei>$UiV>-#j;J%HeG`hp1fYyCiPpS;S7muyR08;uVJ+4ksvXdjKqZLyOu`FHHjc2)Cp@G2D+3f>unN?A`w z2iUZ~DV~OPTL*_8x?)U^O^Y?TRY7^5M?aCPpQVn_z>zj?U+e4}fnf{_f5`RnUgB$!!a3Q{a=CD7n$7` zr#T>8m}o%gNpZl@8s|`AB-P@C(iHz}=D*@0`p0YLjDH9QwruoZ6-juY4c|KfvC7%C zg_ax!aIe5+KN49dltVq|I6&HThJl>$R230;qQ->|?y?Y_*v~Z)5@z9GJ;nfDNDRbu z#Z2wrXRhrLwf4+rU~QyK)Da(ZYTRl;88yk+B{z(5L{dHljz0twViu$R; zJ9Vgm3qHMj=&w(Al2FHgrPKqH1qT|C)me_=zRh4sTdg0jL_mIqdd{p>(mFps-~Gp9 zrZaqeD!?A2h~@Wi?T#F1X_p1#_~#*_#AH5cFtkLZ$8PKAG(!2QD1s?w5~U|Vg#qqp z9RR=Gu&kl5aRZ_>FC!ykbOKDCJ^lU6-o8Kssy*AZha6%Mz)*wlZlfh!nbE?|e{}dD zF#qpj(zLT+oH}f?r?f>k^>d_=;>#yfC~=2cPZ7_bY{O390eXqYcJt4Vz2ANRa0)_E zgG#I;u)1$QVrrsfVn;$SWo&>=>*9U88L3IjZ8}ewx_mw;RZN4wzJ2< z5jEHxvhw7^JPA7{;Q;p+#WQApTb59;1FlnxdJc5a{QRB&jBQ{$z67tR0ZOC+MZ5at z=DrR@hg`<91`%adG!0kdQeo9np20JYyHx-5P`?oS8GGkFKoH<2<9J}L2;AA})>e28 zjI!3>u*Qej^Uv6YVXui$sJXg|%^Og4+5!Bt!1{ZXe2DGi%yb|++cBFbJjS5dARJb!?d$8?zoWu&?^3wzvMOL24W=WCi2Cfgd)GX&<=9RpJK_lEyArAy zL`rLukVk-xLwZ+E$sS@ZJ|xQfpq~NaNiRLblSE0uIO0F2W=*algSaWbpD0gcF@>W3 z4B;d2X2<>$*6Uu}Nb@;YD|w2sYs^IC{bUS;Pxo?RHZ7(kVRvPqVC(%t?9hv%!{#)K zgv8c@)@X#|vEgI1jK3Tvj$rIxVr`CxoW`QXVC2g7=Y5dcFlBV0UC0TWaJxXcQIPwk zF{!kQ2akFqp)e2!)*ZSMUYpidjP4cv&5u}^O}}u}vPn(d{mIvS-)}0xx`}(pFY8t0 z5h4#lHH#ELnckl(WDMjS2eTKS(#0{Bfh+F_pVqe$%P-(#g@VHF&K+uWJrw~HVGnrF zd?(qpUCMl?Zfh!OiM;YA5HCKTa8;KZq2e)!GYr1aJZVTkdlOm{M7c*4Kv95%k-h=( zz6YiA!HN+?7MD`^;ll^7N6aD+Q8?m>>7|4K=9Pf_NzF!ZRY*PGY+og3+ZR?}27}?;iVPSzz%kxnMs%T)9(PEi|JjR#@FZ-9LTS5pcWE+e zQwI(r4;C9;g)e{yP!T#Ie3akcazSy$=0TxNgR<^{wCs7n8-uF`ejA#2pfrSyU<=l8X}6gOGf)A|>R;vMT>EYShwSK~;VXE#+gD$QKY>g_3%9%=Z!j}~;Czfo@+#~?RJ?+Aiu~5reHlU!Twb(Y zQVBGo*)`X{O{lIK=;U%?LPCUa#pGf*^RRjBNSSRk+6(cwFQx*twTW;AePAjsT7V-z zL;!mSpH%)yc>hrG`BFx^aCK}y#Js>jQm_iBMy>xI&PNRdnW2Daz+=khIt2AeF4(Q- zKvR>OD)rx~^asK$X%*}}Hc*^yw|lS&`p?bL z@*K!!kt`^elsX}u$G3vnfaaVNowyvTU&dr&0*ohHC}0A@HssicP-K-`X1j)6ZV4$o z3Gc>~J<-Uc!e?E>g#7iM)_4jH{sF2c*!WFSED5-d2!)OfN*bgfeK2)*vYzR^=d1I4IJTGiyy(eJB|o#v$A!m;Wi0v{GUP6u2e!buIiP!=Tc&=Jn> zwqh%2YZ8$;bFa&{f$RL~kN4&A`9yk5OQEU*>9tr7HT-uJ@P>1^F<7=xcQv$Apsi6x zm5!ztC#ZS0-sm8=lpsV}-Lyd-scVZKoaXw64G`8;b||Yv%k;`Dq)J^C6_wOxXz%$S zdMrMS-^P;Tgg%>9ipu3Gv{|9i{MO@>xPK>*n}r*K`5mQA0e|a7xsCd6p!Jvc{F~;o zTOXf2YE*+t7lcEqbXdRYu_V?=Wm%bORNx`bk!g9j9vY2JF^>+_W^VJH{6-JV;DT+?H*cTWgtH3mgGo{pDkFFNC}?{V*kUW2SjY>j^~YkffK*HYVa5z3f^iv?ZEEvvs57x*gxX@!_Ni&v+?e~ z7cagX*Z)PMzV;DSsD;q4T<}=Zz!5GMI9<154rCNG$pM$v4BGPqM)YtW4Uqi6UjLy2 zEf0Y-@#UCU@_L?>#Jc{B6cXur)I24Z1rpB9&#gJ^XQV@*Ea)IHfvO8!@Uy^e=xb?d z*|6O-GfOEcEj_7*s(G`Ss1zrlRx=rEjLLd)s~t)}G{xH4+n4+9c%YUeieOQcl6sR) z)qkr*!0A1PtJBU|{q7ZPJ!3BY`=*76vFf71yC^B%|Wt z%BDZ#g5|Qb?lMsh0F;w@JEfv5r#UhimWTmH!lE;siWz;fk_X@Xo>`H=qKafFZIktD zpIaOpk3t+r-WsBfJJ4A+3Gy_Q?|vIaMMZI6CZ(s`SMxR@Hg`k*0A=GW>YaeLLJ!#w zp#WqFETq>$!>{mIFklRVBO8q?0UrRjhnlfs1&kScoNGN7_0gXllbXu8J-;=b+Bg0& z*!`>A#tgKJ^?)}PZ7&k4-#y21T;*)rLR8RGF8pjxlS$GOa-u12mf$Knm-IRxN(DZ9ux|&`9|3;ltty zAR@z#@omN!aK0GftVuy!Ev+-ZOrGIMYA`AnUp7)+u74JhhHp%;>cg+=WCrc*MQd_hU+0{CBu$~aM|We2rj zNCW2k*3*+Uy7$`?^}enR*cUy1X91qcLdf>#fPSpb>v@#=9V}1Bkk2VUYn(Gi|@Etu;Q_E;`8j zs&HTuKuXhv_J@Hx?9_H&LRSFb^1+1y~T-B z`25zH8=hi1PGAd=d*MTL0g@r?z;e{@MJJ7;ZLfQ9{D5e_c_ACBXIn?6Lm6Zm!tumT zijWf4$F*E8U&b;&zTl>eQER>@A#AHwz=J$7Ex9`YJ6HHo0zpy7GP^b=^0KHn-BC#0 z02+jOA42a3al`|4ZX)74C%^0Yfc*|&U{vs$1X&p5ZL=K2h`IFegP*ssp9m*i&mYJ4 z12jjB^sQ=)kIn815k)kXqI433Q}!ocvDEsv0MMC8wBSo{ME>NFbarQ7lB*odw`r)UPI&m7l@abrrs6f47S$sXy^7<)ttaGxWta~T!Ji-Vs5PKtQRSj1p!96N zQsUspXvO&xe8J9m#S@v;rY-Gbr@59Q<^@k8L>5iZs@s5EOGoIr`S?u*Q_LCRJ9TMs zxK@KTe6KkkYZpDaPHVE;zrh< zwM`(BG>9>G2q7x1UFRC{S4ik?I#!A`j*HGq+#M~9U#fSOuDeI zKrwpd%3F}**AlM1er5Rt6GO@Mj?^;yOY+Ywx|e9zBWfV|USfHTz0zmH5x{XEYV@ag zCd@WWfDbumTqZpdFmwmVe%Z-^v^;s&DGe~{i~gDb%2*tFvNp-w*bL9+5*ef%n?79` zC<0T{c*D`-SITvCV}YAQ%y-*uZv#T8^Tx(MMPU@qmUO8h4krViaw(c*jaLo4e0c(G zZbm`5+5IJD1|}wZ$cm^pdPlAhIx^5&?S`}S65dZ9K0PqxSc7*s&Bw14R7+$Pgy~Ni z6qw8$TfPFIr@P8|;^N{fjf9uLT^K+`{bc`7kizOc6A(Vo)=uxyfdT0>o(RZ&=SB1U z=_zonE~VW)vc)OK5II;T27Xx8wr52+8 zg>IpQT&Qj}DqB0X5NZZ+=%Yd$XthfH@(Np@wZjb0{{R*}M5W5vGU&n_o;`DUvpxfg z9SE(bPAhyV_=UxP>aW3W_LPtx?0!8cSoGVdZ65ZAep}Smg7%8q&UB=E1L-90vwo)z z+F+%@9Pa$n%m(`t+KJGy1HJiqAXGI39qNOM zsQ{`fUl3-!q0Ht{gQ7JDe$ySrP@z<@cN?#R@qBNw`Qeyl-9J38O!Xex3a( zpfO_(R;Dtr&DvchcRHId{0x+Kw9W zj&ta`B%mHb>-Xn9Sq~JYi~a{Y=?>9++WMNBp^zJjCcnhlFOJl0Pf64R@m^t8&us?Z z^C-GW5c4!5Ddu?Gmt#j1TL~_Dcy~+7#OP-UDM%r(${Qm-MQHV1tip{px42HX_dp^7 zT_qbdm03V1-oRCQ@1^`JiQik4CY$7DiqVg0*3`Xd2>~|t`IN_Ji)l43B0cCjfzC%8 zXaR>zzTi0u)D_w|P0o6M`1;#e4dy4uQ{12rl9D)q0!#hKwCUh`PZ~A-9m2ELw^E|7 zv76{g0B|NlA5_$@;J^iT&x7@K58vITW;J8!<1B)4;5FwW)$KeI3_(aUKr<0J@$od~ z&fU8=l#~J>we$Gao&9h_^arGNaCaRZ@P`gcFpxm^r(7mf>S#6vT?3{07FO;atlx$G z8x0L5M^GAUbgSL-d2DRa^{Gh0v?gf8&o z2P^OP0sP}M`d|sj0A2O&5C+t{M82Gm1uVV1vj^xBMsRJ${fj{5qxG%%(ywB7M`Qsa zX^kH2Z@9xb12(|qg0=3F?8PvdGt2~n({G;Uv7`4}IdGme<;%#j;0#11q zlTY{=H1wz2pF2%@uj&FxL1Xj}{mY5>Y(bS{>x?0}#3zwNk``@A{`5TVw3Qt8H$M;F zSMXkyvG2!hUAo7KV$IhzkF{N3qiNT$$R**TRLV`{3;i;Ai;W9+T&V;a z*8;yxzN93-^nee~!=(Nm=@se!`7{Hrby=C{Noz!b+jTNUnQLL68OV^E8B~%Vg|jK1 zv8&p(FAkgy;jv8K0xuKQvlFcE!o_zX*c%Lqb1qn*R__0$(4N ziGwifQrfzRISyThZ|^i=uzSbO_wP1+&2>2o2HzKF<=V0es8@UxRj<=?wJnrf@;GF` zpy#q;kUmG@bS}TZ{|Yvq%gq^6$ND_M>S^uGS1ivH+K&VyM+_~QNhxp-sVxGzJNO;L zT2&;3aUA)pbWsTJr;ZB=Aw=CVGXbi{E3)pzYhFmwqyy|pGAoR@NJ7=^1;5IkL zjl7qL_yY|eri_~3^a=8+xP=<`6#7Aj9GOHp9&o@l*p*7RDv_wqlO?^OOfbk!8frEX z9)8n=SurVn^DL^vW5fY+vsbiBwODPERdtS9q~N({_RC{m6u1TEAZoYElLWO6h`+Sm z>hV2biDS0@_HK$b(4ONjo_o2Fr}-w&jnhnt(tc;i!}iaUmvb{2tcgwQ_WAxVR4R{hb(DM_}Iu+8+D!jLe`}XypR$2Vq$uId|a5LQXrtcg{ zaOh8?ZaM`D+GJ9GRc6*dd1il5v{8YS!+YkqT9=`9au!;Sp{N9|#-j#@suZK9Ra5`H zwRDU9-D!n6lzm;O9OVcvj&7fHnSJy=!Om{>oXkJolLF;CXp@5~-ZT;A$1 zPyL>boc`FtkB`@h8-lYdz&_VdfwI4yFO{P*fB$w|=zpUG;!FD1VaG~%u^dv*?LZb! zKH4P%sHC>BRzVR?X8vh?2U_kNR3Wvj=OwQ@avXRJt+$^Eq-ig6$Ew0f6$KqBG|yx1 zKGal0z)GSEoeLGO)6x{d1pRA%{u{984CKV#!_y6i6z11t>dcDXn%$l81?_2&D*hr1^6o6;2Q@$^K?;D8wd9zzaO``L>rxwIZ^2e-u^m{xcT!7jqf>pJ&Hxs z6}Tg9zUss=43s`#evx1`tLD_pmLQ3Mo45wjY8&lD)w%BBMDHf@(gww66L(wpqlU95 zXNn;yFEpNp~A&iWSdDYcYcZ^+KOF_bmNltzZd@(e+tkr0no0}Jn8UlL+%y1A& zSV3(rx&QuE#GzONi`~N!En$5lYmd(hNS9eFx@o8(>Q}CmIS$tpJHU|@x&Sq1;cgA69f0ExCo)hYR;rhL$PhK_#`kb0fw`*mlsLey24QMg zS6fYRP(!%X)Z3MIQLvDQc5BJBc>%Tz-x|4ju-(@LAo0#^D=QWzQ@6-B;NEy*0eM`6 z=NM=PBD+?w=Vb>TUn=+f{DfWc*OPKhC-jh>NH1O^IHCfyhi_m21iOD}0|tljaAcZi zlfiEWmunU`dGo+wII1l4itr~0cwz)`V*Y=45bst>r24#w!+B_6z|MsSDHzXRCxnG7 zzS1P>xL&Ye*uskkD^pY^7-gfmF*tE}0JlX{CL{+vucu9MP&CfG+4u)Jali#%U}L~~ z00-fmlVJn*7|P0kOa2BlFMa=UsjYo!P|D-;$da*uM}zP;IQ$}#Tcu^8qK}-JzuZ=T z$1^lGd7{#FKB{h_(rEroh4pD;j9cw63-m&KH)rFPkm#fLmn5>B-dtd-y}h{k`X~@Z z{x{#;O0vrG?|V?}y6X{UTH?8@|4c4+z16Ie0Mqj1*nb=Y#{0B+qEl{T2#)!%@Hjp!ltz$UY8wc&q5rupu4|4AS8|31+rpb{WRhs+r~{GkO|0zt-vdH(YQ=dwHB&n3fo zFA!?FetwQ#TOYi;QG0;WD_{~sd%i$#-j4I%VuHnc^7Md(@{#(l)7?=g)!krefLB8u z72H6Yie_HuJO5wH%zqb{d4D*s^A7a0va+r>dPY8OYwIhoLMOM zf_A4*MNsQ)y_K#*G*m%Cam%rjI~mNtG!&5=Y)cr)EdB5?KgXGIrN@8~A6rcBvsb7j zqwzDxiT@A61LZjTe&M($0^o zzfuLJh9f5EAE?ubG^3}FZU#t`rjcIO#<-fQ3ES43#lllPIisAn&kd*E-w_cphGx<= z5~Y7<&9px^2dm7Euubc^ArBP%xH!*KJqEFFG@1h>4Q=;yB2gD(`1PPHI{w^)*v#Wq z6q+ylobP}_J!Scx*{yP{2%tQrh_+!31xC?^|H7$Q`JQ>YV>5W4`4`0`0?Ph`YH7lL{nH9bcv7upk&{hN^3Vt005q z2C1bB@kl5bnJ+1MVeK17$DPW7(*5u4f!hkoR2jHbx;7x0SFD>2%?45-fY3aPbwYyc z=JYu}m5RL(_8W(Whoi|-G=^%u3ve%+oTrN%(-zkeTknsRsK*TeYOL0)A8SbR9}5vk zJCUoSa9eE?6EgV8IBy(X;B(pJQK_eNCWD6ZB5vbNUNNWz8Y}ucz4+1ES$y$n3ABHl zY6O1Ca!1axaV`cFugD;M7OQP_``+_8D*%G{NF+FX)ypgko9w*yrfLNL3971eJt&nI zdwQbXgfkCwT|BDI*X9q`*?D5KiG+>}GM?@RaMJgNOeTJm?$=kcF=4iu$zRXZnv&w4 zn)!`Qa32|VXCJzCE9O*veS`P0muU_2AI)q(Ie7j0)awtsG#gReTS~t7Gk{<(`~;Xx zXj&1A7(Ie#6_!lbXlsf?kx)JtZES%MN068IwPfP(B{nRzWp`;NyiuIJSmZ^f*tXf8 z7X@zDzAqELbF5|slFi;}Pts&cr(6^2h#_swdPT PbR-|)?u<0*O;ODsh>upu literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[one column].png b/tests/safeds/data/tabular/plotting/__snapshots__/test_plot_violinplots/test_should_match_snapshot[one column].png new file mode 100644 index 0000000000000000000000000000000000000000..ecf84738bc731e15d41ded4ad002beb11a9349fa GIT binary patch literal 15775 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 literal 0 HcmV?d00001 diff --git a/tests/safeds/data/tabular/plotting/test_plot_violin_plots.py b/tests/safeds/data/tabular/plotting/test_plot_violin_plots.py new file mode 100644 index 000000000..d2da0fd93 --- /dev/null +++ b/tests/safeds/data/tabular/plotting/test_plot_violin_plots.py @@ -0,0 +1,49 @@ +import pytest +from safeds.data.tabular.containers import Table +from safeds.exceptions import NonNumericColumnError +from syrupy import SnapshotAssertion + + +@pytest.mark.parametrize( + "table", + [ + Table({"A": [1, 2, 3]}), + Table({"A": [1, 2, 3], "B": ["A", "A", "Bla"], "C": [True, True, False], "D": [1.0, 2.1, 4.5]}), + Table({"A": [1, 2, 3], "B": [1.0, 2.1, 4.5], "C": [1, 2, 3], "D": [1.0, 2.1, 4.5]}), + ], + ids=["one column", "four columns (some non-numeric)", "four columns (all numeric)"], +) +def test_should_match_snapshot(table: Table, snapshot_png_image: SnapshotAssertion) -> None: + violinplots = table.plot.violin_plots() + assert violinplots == snapshot_png_image + + +@pytest.mark.parametrize( + "table", + [ + Table({"A": [1, 2, 3]}), + Table({"A": [1, 2, 3], "B": ["A", "A", "Bla"], "C": [True, True, False], "D": [1.0, 2.1, 4.5]}), + Table({"A": [1, 2, 3], "B": [1.0, 2.1, 4.5], "C": [1, 2, 3], "D": [1.0, 2.1, 4.5]}), + ], + ids=["one column", "four columns (some non-numeric)", "four columns (all numeric)"], +) +def test_should_match_dark_snapshot(table: Table, snapshot_png_image: SnapshotAssertion) -> None: + violinplots = table.plot.violin_plots(theme="dark") + assert violinplots == snapshot_png_image + + +def test_should_raise_if_column_contains_non_numerical_values() -> None: + table = Table.from_dict({"A": ["1", "2", "3.5"], "B": ["0.2", "4", "77"]}) + with pytest.raises( + NonNumericColumnError, + match=( + r"Tried to do a numerical operation on one or multiple non-numerical columns: \nThis table contains only" + r" non-numerical columns." + ), + ): + table.plot.violin_plots() + + +def test_should_fail_on_empty_table() -> None: + with pytest.raises(NonNumericColumnError): + Table().plot.violin_plots()