Ответ 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
), что дополнительные аргументы будут неоднозначными.