EDIT: удален старый вопрос, чтобы упростить поиск решения в сообщении.
Seaborn - это библиотека визуализации данных Python на основе matplotlib . Чтобы использовать Seaborn, ваши данные должны быть в формате tidy .
Вы можете использовать Pandas DataFrame.loc [] для фильтрации фрейма данных.
В следующем примере я (1) загружу некоторые данные из файла CSV в фрейм данных, (2) отфильтрую эти данные на основе определенных c значений в столбце, (3) представлю эти данные в виде блочной диаграммы. используя Seaborn, и (4) решает, в каком порядке должны быть представлены данные и какие метки следует использовать.
Некоторые примеры данных
Object,Metric,Score
M11,B2A10,2.7939033333333336
MT1,B2A10,1.287634388888889
MT1,B2A1,7.1535
MT1,B2A2,2.2441833333333334
MT1,B2A3,3.3787333333333334
MT1,B2A4,2.50297
MT1,B2A5,1.4254989999999998
MT1,B2A6,2.91325
MT1,B2A7,1.24806
MT1,B2A8,2.08797725
MT1,B2A9,1.208722
Импортировать библиотеки и модули
import pandas as pd
import seaborn as sns
Установить морской стиль
sns.set(style="whitegrid", palette="colorblind")
Загрузить данные и создать список элементов, которые мы хотим отфильтровать
data = pd.read_csv("data.csv")
list = ["B2A10", "B2A1"]
Отфильтровать данные с использованием .lo c и поместить в новый фрейм данных
filtered_data = data.loc[data['Metric'].isin(list)]
Создайте коробчатую диаграмму с использованием отфильтрованных данных
fig, ax = plt.subplots(figsize=(10,6))
ax = sns.boxplot(x='Metric', y='Length', data=samples, order=["B2A1", "B2A10"])
ax = sns.swarmplot(x="Metric", y="Length", data=samples, color=".25", order=["B2A1", "B2A10"])
ax.set_xlabel('Label X-Axis')
ax.set_ylabel('Label Y-Axis')
plt.title('Title',fontsize=16)
labels = [item.get_text() for item in ax.get_xticklabels()]
labels[0] = 'Sample 1'
labels[1] = 'Sample 2'
ax.set_xticklabels(labels)
plt.savefig('test.png', dpi=300, bbox_inches='tight')
Окончательный график должен выглядеть следующим образом.