Я изо всех сил пытаюсь заставить морскую профессию работать на меня. Я просмотрел несколько руководств, и, похоже, ничего не работает. Первый столбец - это значения с плавающей запятой, второй столбец - метки классов. Я хочу, чтобы у каждого класса был свой скрипичный сюжет. Есть классовый дисбаланс. Как мне разделить второй столбец на отдельные сюжеты скрипки, а поплавки из соседнего столбца назначить этим группам?
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
data = <read files and append [float, str] to list>
data = pd.DataFrame(data=data, columns=['Slope', 'Class'])
Slope Class
0 0.1204778488753736 A
1 -0.05555463166744862 B
3 0.12801810567575655 A
4 -0.05620886965822473 B
... ... ...
1126 0.10525394490595655 D
1127 0.10174103119847132 E
1128 -0.03527457290513986 C
1129 -0.035187264760902316 D
1130 -0.03407274349346173 E
sns.violinplot(data=data)
Отображается:
![enter image description here](https://i.stack.imgur.com/13IQB.png)
У меня заканчиваются идеи, что попробовать. Большинство вещей заканчиваются ошибкой:
Traceback (most recent call last):
File "c:\Path\Slope Graphs.py", line 43, in <module>
main(slopes1, slopes2)
File "c:\Path\Slope Graphs.py", line 26, in main
sns.violinplot(x='Class', y='Slope', data=data)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\seaborn\categorical.py", line 2384, in violinplot
plotter = _ViolinPlotter(x, y, hue, data, order, hue_order,
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\seaborn\categorical.py", line 554, in __init__
self.estimate_densities(bw, cut, scale, scale_hue, gridsize)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\seaborn\categorical.py", line 620, in estimate_densities
kde, bw_used = self.fit_kde(kde_data, bw)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\seaborn\categorical.py", line 705, in fit_kde
kde = stats.gaussian_kde(x, bw)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\scipy\stats\kde.py", line 209, in __init__
self.set_bandwidth(bw_method=bw_method)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\scipy\stats\kde.py", line 565, in set_bandwidth
self._compute_covariance()
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\scipy\stats\kde.py", line 574, in _compute_covariance
self._data_covariance = atleast_2d(cov(self.dataset, rowvar=1,
File "<__array_function__ internals>", line 5, in cov
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\lib\function_base.py", line 2422, in cov
avg, w_sum = average(X, axis=1, weights=w, returned=True)
File "<__array_function__ internals>", line 5, in average
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\lib\function_base.py", line 420, in average
scl = wgt.sum(axis=axis, dtype=result_dtype)
File "C:\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\core\_methods.py", line 38, in _sum
return umr_sum(a, axis, dtype, out, keepdims, initial, where)
TypeError: No loop matching the specified signature and casting was found for ufunc add