Категориальное построение с использованием морской волны повышает ValueError: массивы объектов не поддерживаются - PullRequest
0 голосов
/ 11 сентября 2018

Вот часть Pandas DataFrame, с которой я работаю:

all_samples = pd.DataFrame({'Group': {0: 'One', 3: 'One', 4: 'One', 5: 'One', 7: 'One'},
 'Sample': {0: 1, 3: 1, 4: 2, 5: 2, 7: 2},
 'VAF': {0: 0.0009577524741938917,
  3: 0.0006907269901571404,
  4: 0.001246660730186999,
  5: 0.00128,
  7: 0.0012338062924120913}})

Если я пытаюсь отобразить данные как диаграмму рассеяния, все работает нормально:

sns.catplot(x="Group", y="VAF", hue="Sample", dodge=True,
            palette="pastel", data=all_samples.head(20));

Но когда я пытаюсь представить данные как скрипку или блокпост, как это:

sns.catplot(x="Group", y="VAF", hue="Sample", kind='violin',
            palette="pastel", data=all_samples.head(20));

Я получаю ValueError: object arrays are not supported ошибку. Мой DataFrame плохо структурирован или что-то в этом роде?

Обновление:

Так как это работало для других, я попробовал пример, который я разместил, и он работает для меня. Затем, когда я использую свой полный DataFrame; Я преобразовал его в словарь, затем в DataFrame, и теперь он работал просто отлично. temp = pd.DataFrame(all_samples.to_dict()), а затем чертит так: sns.violinplot(x='Group', y='VAF', hue='Sample', palette='pastel', data=temp). К сожалению, я не знаю, как опубликовать свои исходные данные сейчас, чтобы понять, что происходит не так. Имеет ли это смысл для кого-либо?

1 Ответ

0 голосов
/ 12 сентября 2018

Это работает для меня на seaborn версии 0.9, однако в моем случае график обрезается.

Если вы хотите построить график для скрипки, вы можете напрямую вызвать функцию violinplot:

sns.violinplot(x='Group', y='VAF', hue='Sample', palette='pastel', data=all_samples);
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...