Вы можете передавать столбцы MultiIndex как кортежи в DataFrame.plot
:
Пример
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Setup
midx = pd.MultiIndex.from_product([['Category A', 'Category B'],
['Thing 1', 'Thing 2']])
np.random.seed(0)
df = pd.DataFrame(np.random.randn(10, 4), columns=midx)
print(df)
Category A Category B
Thing 1 Thing 2 Thing 1 Thing 2
0 1.764052 0.400157 0.978738 2.240893
1 1.867558 -0.977278 0.950088 -0.151357
2 -0.103219 0.410599 0.144044 1.454274
3 0.761038 0.121675 0.443863 0.333674
4 1.494079 -0.205158 0.313068 -0.854096
5 -2.552990 0.653619 0.864436 -0.742165
6 2.269755 -1.454366 0.045759 -0.187184
7 1.532779 1.469359 0.154947 0.378163
8 -0.887786 -1.980796 -0.347912 0.156349
9 1.230291 1.202380 -0.387327 -0.302303
df.plot(x=('Category A', 'Thing 1'),
y=('Category B', 'Thing 2'),
kind='scatter')
[выход]
введите описание изображения здесь