Matplotlib Скрипка сюжет странное требование ввода - PullRequest
0 голосов
/ 25 октября 2018

Почему для скрипки в matplotlib требуются нестандартные входы?

минимальный нерабочий пример

import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(3, 1)
ax[0].plot([3, 4, 5])
ax[1].boxplot([3, 4, 5])
ax[2].violin([3, 4, 5])

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

TypeError: 'int' object is not subscriptable

Все следующие команды выдают ошибки

ax[2].violin([[3, 4, 5]])
ax[2].violin([[3], [4], [5]])
ax[2].violin(np.array([[3, 4, 5]]))
ax[2].violin(np.array([3, 4, 5]))
ax[2].violin([np.array([3, 4, 5])])
ax[2].violin([np.array([[3, 4, 5]])])
ax[2].violin([np.array([[3], [4], [5]])])

Документ просто заявляет:

dataset : Array or a sequence of vectors.
    The input data.

Какой формат я должен ввести для этой функции и почему не принимает стандартные данныевекторов?

1 Ответ

0 голосов
/ 25 октября 2018

ax.violin отличается от plt.violinplot.Из (фактического) документа ax.violin:

ax.violin(vpstats, positions=None, vert=True, widths=0.5, showmeans=False, showextrema=True, showmedians=False)

(...)

vpstats : list of dicts
  A list of dictionaries containing stats for each violin plot.

См. https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.violin.html

...