Я использую seaborn.catplot
для построения своих данных. Я хотел бы добавить вторую ось X ниже моей главной оси X, чтобы описать другой параметр. Моя главная ось x определяется значениями от plot_df['first_param']
, я хотел бы представить значения plot_df['second_param']
ниже этого.
Вот мой код:
import numpy as np
import pandas as pd
import seaborn as sns
# simulate data
np.random.seed(42)
measure_names = np.tile(np.repeat(['Train BAC','Test BAC','Train SPEC','Test SPEC'],10),2)
model_numbers = np.repeat([0,1],40)
measure_values = np.random.uniform(low=0,high=1,size=80).tolist()
first_param = np.repeat([0.8,0.7],40)
second_param = np.repeat(['99%','80%'],40)
folds=np.tile([1,2,3,4,5,6,7,8,9,10],8)
plot_df = pd.DataFrame({'model_number':model_numbers,
'measure_name':measure_names,
'measure_value':measure_values,
'first_param':first_param,
'second_param':second_param,
'outer_fold':folds})
# add a column to separate between test scores and train scores
train_scores = ['Train BAC','Train SPEC']
plot_df['score_type'] = np.where(plot_df['measure_name'].isin(train_scores),'train_score','test_score')
# plot as boxplots
g = sns.catplot(x='first_param',
y='measure_value',
col='score_type',
hue='measure_name',
kind='box',
data=plot_df)
, который производит :
![image](https://i.stack.imgur.com/lXyl4.png)
Я хотел бы выглядеть так:
![image](https://i.stack.imgur.com/zbBEP.png)
Обратите внимание, что этот пост тесно связан с этим постом , но в моем случае необходимо будет работать с морским объектом FacetGrid, а не с объектом рисунка matplotlib.