code: def test_violin_multi_invert_axes(self):
      violin = Violin(
          (["A"] * 8 + ["B"] * 8, [1, 1, 2, 3, 3, 4, 5, 5] * 2),
          "x",
          "y",
      ).opts(invert_axes=True)
      state = self._get_plot_state(violin)
      self.assertEqual(len(state["data"]), 2)
      self.assertEqual(state["data"][0]["type"], "violin")
      self.assertEqual(state["data"][0]["name"], "A")
      self.assertEqual(
          state["data"][0]["x"], np.array([1, 1, 2, 3, 3, 4, 5, 5])
      )
      self.assertEqual(state["data"][1]["type"], "violin")
      self.assertEqual(state["data"][1]["name"], "B")
      self.assertEqual(
          state["data"][1]["x"], np.array([1, 1, 2, 3, 3, 4, 5, 5])
      )
      self.assertEqual(state["layout"]["yaxis"]["title"]["text"], "x")
      self.assertEqual(state["layout"]["xaxis"]["range"], [1, 5])
      self.assertEqual(state["layout"]["xaxis"]["title"]["text"], "y")
  
file_path: holoviews/holoviews/tests/plotting/plotly/test_violinplot.py
imports: import numpy
  from holoviews.element import Violin
  from .test_plot import TestPlotlyPlot
label_desc: Use image node_id 4 for calling the TestViolinPlot obj's underlying member method code with example usage: obj.test_violin_multi_invert_axes() without return types