Настройка ширины окна в boxplot в python matplotlib

Я хотел бы уменьшить ширину ящиков в boxplot ниже. Вот мой код, но он не работает:

bp = plt.boxplot(boxes, widths = 0.6, patch_artist = True)

enter image description here

2 ответов


С документация существует опция ширины:

widths: array-like, default = 0.5

либо скаляр, либо вектор и задает ширину каждого окна. Значение по умолчанию равно 0,5 или 0,15*(расстояние между крайними позициями), если оно меньше.

вот пример:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(937)
data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')
fs = 10  # fontsize

plt.boxplot(data, labels=labels, showfliers=False, widths=(1, 0.5, 1.2, 0.1))

plt.show()

Result


попробуйте работать через axes и посмотреть, работает ли он:

fig = plt.figure()
ax = fig.add_subplot(111)
ax.boxplot(boxes, widths = 0.6, patch_artist = True)