Как построить график из 2 столбцов данных в несколько скрипичных графиков с помощью seaborn - PullRequest
0 голосов
/ 07 мая 2020

Я изо всех сил пытаюсь заставить морскую профессию работать на меня. Я просмотрел несколько руководств, и, похоже, ничего не работает. Первый столбец - это значения с плавающей запятой, второй столбец - метки классов. Я хочу, чтобы у каждого класса был свой скрипичный сюжет. Есть классовый дисбаланс. Как мне разделить второй столбец на отдельные сюжеты скрипки, а поплавки из соседнего столбца назначить этим группам?

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

У меня заканчиваются идеи, что попробовать. Большинство вещей заканчиваются ошибкой:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...