Вы можете нарисовать его в два этапа: сначала составленные столбцы, а затем суммированные столбцы.
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame([[2, 5, 7, 11], [4, 8, 11, 45]]).T
ax = df.plot.bar(stacked=True)
ax = df.sum(axis=1).plot.bar(facecolor='none', edgecolor='green', lw=5, ax=ax)
To only draw a rectangle around some bars, set the sum to NaN
except for the bars to be highlighted:
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame([[2, 5, 7, 11], [4, 8, 11, 45]]).T
dfs = df.sum(axis=1)
dfs.iloc[df.index != 2] = np.nan
ax = df.plot.bar(stacked=True)
ax = dfs.plot.bar(facecolor='none', edgecolor='green', lw=5, ax=ax)
только прямоугольник вокруг бара 2