Python 同一位置上的不同方框图

Python 同一位置上的不同方框图,python,pandas,matplotlib,plot,visualization,Python,Pandas,Matplotlib,Plot,Visualization,我正试图结合箱图与散点图的算法评分可视化。我的数据划分如下: oX-有关时间段的信息(1年、2年等) oY-有关分数的信息 每个周期的2个算法,具有不同的模拟结果(绘制为箱线图) 2个具有单个值的启发式(绘制为点) 我试图简单地比较每个时间段的方法效率 小样本数据: 1 year 2 years A1 A2 H1 H2 A1 A2 H1 H2 124 168 155 167 130 130 150 164 102 155

我正试图结合箱图与散点图的算法评分可视化。我的数据划分如下:

  • oX-有关时间段的信息(1年、2年等)
  • oY-有关分数的信息
  • 每个周期的2个算法,具有不同的模拟结果(绘制为箱线图)
  • 2个具有单个值的启发式(绘制为点)
我试图简单地比较每个时间段的方法效率

小样本数据:

1 year              2 years         
A1  A2  H1  H2  A1  A2  H1  H2
124 168 155 167 130 130 150 164
102 155         100 172     
103 153         117 145     
102 132         145 143     
145 170         133 179     
136 125         115 153     
116 150         136 131     
146 192         106 148     
124 122         127 158     
128 123         149 200     
141 158         137 156     
我正试图得到这样的东西:


到目前为止,我已经清理了我的数据,分别对每个算法(RS、EA)和每个周期(52、104、156等)进行了观察,但我不知道如何对每个周期进行分组,同时为相同的X记号绘制两个不同的箱线图。我假设,一旦我整理了boxplot数据框和绘图,我就可以在顶部绘制散点图。

同时设法解决了这个问题,以防它帮助其他人:

ax1 = sns.boxplot(data = meta, x = 'Time', y = 'PRS', color = '#880BDD', linewidth=0.8)
ax1 = sns.boxplot(data = meta, x = 'Time', y = 'EA', color = '#0BC9DD', linewidth=0.8)
ax1 = sns.boxplot(data = meta, x = 'Time', y = 'ERS', color = '#9BD19D', linewidth=0.8)
ax1 = sns.pointplot(data = simple, x = 'Time', y = 'Greedy Average', color='#FFC48C', markers ='s', join=False)
ax1 = sns.pointplot(data = simple, x = 'Time', y = 'Greedy Total', color='#FF9F80', markers='o', join=False)
ax1 = sns.pointplot(data = simple, x = 'Time', y = 'Greedy Weeks', color='#F56991', markers='*', join=False)
ax1.set(xlabel = "Planning Horizon (weeks)")
ax1.set(ylabel = "Hypervolume")
EA = mpatches.Patch(color='#0BC9DD', label = 'EA')
PRS = mpatches.Patch(color='#880BDD', label = 'PRS')
ERS = mpatches.Patch(color='#9BD19D', label = 'ERS')
GA = mlines.Line2D([], [], color='#FFC48C', marker = 's', label = 'Greedy Average')
GT = mlines.Line2D([], [],color='#FF9F80', label = 'Greedy Total', marker = 'o')
GW = mlines.Line2D([], [],color='#F56991', label = 'Greedy Weeks', marker = '*')
plt.legend(handles = [EA, ERS, PRS, GA, GT, GW], loc = 'bottom left', title = "Algorithm")
ax1.set_title("Algorithm Comparison")
结果如下: