Вы можете создать две копии фрейма данных, одну для блочного графика и одну для ройного графика. Затем в каждой копии установите значения в столбцах , которые вы не хотите отображать таким образом, - nan
.
col_mask = df.count() > 9
swarm_data = df.copy()
swarm_data.loc[:, col_mask] = np.nan
box_data = df.copy()
box_data.loc[:, ~col_mask] = np.nan
Затем передайте каждый из скопированных фреймов данных в соответствующую функцию seaborn.
sns.swarmplot(data=swarm_data)
sns.boxplot(data=box_data)
plt.show()
При создании ройного графика морская волна ничего не будет отображать для столбцов, заполненных nan
, но оставит место там, где они будут. Обратное произойдет с рамочным графиком, в результате чего ваш порядок столбцов будет сохранен.
Диаграмма, сгенерированная вышеуказанным кодом, выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/Jj9B2.png)
Этот подход также будет работать для столбцов с нечисловыми метками:
![enter image description here](https://i.stack.imgur.com/UjJJh.png)