Ответ 1
matplotlib.pyplot.violinplot() говорит, что он возвращает:
Словарь, сопоставляющий каждый компонент скриптинга с списком соответствующих экземпляров коллекции. Словарь имеет следующие ключи:
bodies: Переченьmatplotlib.collections.PolyCollectionэкземпляров, содержащих заполненную площадь каждой скрипки.- [... среди других...]
Методы PolyCollection s включают:
-
set_color(c)который устанавливает как facecolor, так и edgecolor, -
set_facecolor(c)и -
set_edgecolor(c)все из которых принимают "matplotlib color arg или последовательность кортежей rgba",
Таким образом, похоже, что вы можете просто прокрутить список результатов результата и изменить цвет лица каждого из них:
violin_parts = plt.violinplot(...)
for pc in violin_parts['bodies']:
pc.set_facecolor('red')
pc.set_edgecolor('black')
Это немного странно, хотя вы не можете установить это, создавая его, как обычные типы сюжетов. Я предполагаю, что это возможно потому, что операция создает так много бит (вышеупомянутый PolyCollection вместе с 5 другими LineCollections), что дополнительные аргументы будут неоднозначными.

