коробчатые диаграммы с немасштабируемой осью Y

У меня есть некоторые данные, которые я хочу построить. Выбросы (например, 20, 30) слишком далеки от большинства значений (например, 0,0002, 0,0003), и, как следствие, я могу видеть выбросы только при построении графика с помощью matplotlib.

Можно ли в любом случае увеличить значения вокруг медианы, а затем позволить остальной части оси Y не быть в масштабе и также отображать выбросы?

РЕДАКТИРОВАТЬ Вот мой код на питоне. Я хотел бы использовать оси вставки, как предложено ниже, для каждой диаграммы, которая у меня есть. Как я могу сделать это простым способом? Кажется, что в примерах в документации слишком много параметров, о которых нужно позаботиться.

plt.figure()
        ax = plt.subplot(111)
        plt.boxplot(dataToPlot)
        axins = zoomed_inset_axes(ax, 6, loc=1) # zoom = 6
# what follows is taken from example linked in the answer below. 
# I didn't get if the first argument is indeed the data this zoomed image refers to or not. 
        axins.imshow(dataToPlot[1], interpolation="nearest", origin="lower")
# here I only need the y-axis to be in [0,0.1], x-axis is no of use with vertical boxplots
        x1, x2, y1, y2 = -1.5, -0.9, 0.0, 0.1
        axins.set_xlim(x1, x2)
        axins.set_ylim(y1, y2)
        plt.xticks(visible=True)
        plt.yticks(visible=True)
        plt.savefig( 'somewhere.jpeg', bbox_inches=0)

person Ricky Robinson    schedule 22.08.2012    source источник


Ответы (2)


Вы можете сделать оси вставки, как описано на этой странице, примерно на 1/2 пути вниз.

оси вставки

person reptilicus    schedule 22.08.2012
comment
извините, неправильно прочитал вопрос. Встроенные оси больше похожи на то, что вы собираетесь делать? - person reptilicus; 22.08.2012
comment
Либо это, либо логарифмическое масштабирование? - person reptilicus; 22.08.2012
comment
Спасибо! вставки осей звучат интересно. Однако примеры на этой странице не слишком показательны. Я рисую несколько блочных диаграмм на одном графике. Как именно мне нарисовать такую ​​ось вставки для каждой диаграммы? - person Ricky Robinson; 22.08.2012
comment
Я отредактировал свой вопрос, указав более подробную информацию о функции, которую вы предложили. - person Ricky Robinson; 22.08.2012
comment
Я думаю, вы можете прикрепить ось вставки к любому объекту plt. Поэтому, если у вас есть несколько объектов plt, созданных для каждого набора данных, вы можете прикрепить ось вставки к каждому из них. Возможно, вы просто захотите сделать подграфики для каждого набора данных, а затем сделать ось вставки для каждого из них. На данный момент у вас нет под рукой matplotlib для тестирования. . . - person reptilicus; 22.08.2012

Очень старый вопрос, но я наткнулся на это в поисках чего-то подобного. Я решил эту проблему, добавив sym='' (этой опции, возможно, не существовало 7 лет назад!), Которая говорит boxplot не показывать листовки (все, что дальше усов).

Итак, для всех, кто сталкивается с этим, вы можете попробовать изменить строку 3 в вопросе на:

plt.boxplot(dataToPlot, sym='')
person gph    schedule 15.09.2019