Как уменьшить размер ящика участка морского ящика и заставить фигуру адаптироваться к новым размерам ящика? - PullRequest
0 голосов
/ 12 января 2020

Я создал рисунок ниже с кодом, показанным под изображением. Я бы хотел, чтобы коробки были тоньше в горизонтальном направлении, а вся фигура адаптировалась к новым размерам коробок. Как я могу это сделать?

Я знаю, что могу изменить ширину ящиков с помощью sns.boxplot(data=df,width=someScalingFactor), но это создает пространство между ящиками в горизонтальном направлении, и это не то, что я хочу.

enter image description here

def plotBoxPlotDataMAE(self,data,figName):        
    df = pd.DataFrame(data).T
    df = df.rename(columns={0:'Joint 1',1:'Joint 2',2:'Joint 3',3:'Average'})
    f = plt.figure(figName,figsize=[5.3,6])
    ax = f.add_subplot(111)
    obj = sns.boxplot(data=df)
    obj.set_ylabel(ylabel='Mean Absolute Angle Error [°]',fontsize=13)
    plt.tick_params(axis='y',which='both',labelleft='on',labelright='on')
    ax.yaxis.set_ticks_position('both')

В конечном счете, я хочу, чтобы фигура была тоньше, потому что большие поля не добавляют информацию на график, и у меня не так много место в документе, где я бы хотел их использовать.

1 Ответ

2 голосов
/ 13 января 2020

Размеры ящиков определяются исходя из размеров осей, которые зависят от размера фигуры. Таким образом, чтобы получить более тонкую фигуру с более тонкими прямоугольниками, вам нужно изменить размер фигуры.

Как вы заметили, это создает проблему с осями и метками, но об этом легко позаботиться, используя tight_layout(), как указано от @ Johan C.

полный код:

f = plt.figure(figsize=[2,6])
ax = f.add_subplot(111)
sns.boxplot(data=df, ax=ax)
ax.set_ylabel(ylabel='Mean Absolute Angle Error [°]',fontsize=13)
plt.tick_params(axis='y',which='both',labelleft='on',labelright='on')
ax.yaxis.set_ticks_position('both')
plt.setp(ax.get_xticklabels(), rotation=90)
f.tight_layout()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...