回答
您需要在pandas.DataFrame 中组织您的数据,然后您需要使用pandas.melt 重塑此数据框,以获得这样的数据框:
name day type median
foo online_days 1.0
bar online_days 0.5
test online_days 1.5
foo offline_days 2.0
bar offline_days 2.5
test offline_days 1.5
foo hybrid_days 0.0
bar hybrid_days 0.0
test hybrid_days 0.0
最后,您可以通过seaborn.barplot() 绘制数据。
代码
# import
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# data
df = pd.DataFrame({'name': ['foo', 'bar', 'test'],
'online_days': [1, 0.5, 1.5],
'offline_days': [2, 2.5, 1.5],
'hybrid_days': [0, 0, 0]})
df = pd.melt(frame = df,
id_vars = 'name',
var_name = 'day type',
value_name = 'median')
# plotting
fig, ax = plt.subplots()
sns.barplot(ax = ax,
data = df,
x = 'name',
y = 'median',
hue = 'day type')
plt.show()
输出