2016-08-01 68 views
2

我正在试图将盒子图与算法评分可视化的散点图结合起来。我的数据被划分为以下几点:在同一个oX位置上的不同盒子图

  • OX - 有关分数每个时段有不同的模拟
  • 2的算法 - 关于时间(1年,2年等)
  • OY信息结果(绘制为箱线图)
  • 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  

我想要得到的东西看起来是这样的: enter image description here

到目前为止,我已经清除了我的数据,为每个算法的意见( RS,EA)和每个周期(52,104,156等)分别为like so,但我不知道如何在每个周期对它们进行分组,同时为同一个X tick绘制2个不同的盒形图。我假设一旦我理清了boxplot数据框和情节,我可以将散点图绘制在最上面。

回答

0

设法解决此同时,在情况下,它可以帮助别人了:

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") 

结果在此:

enter image description here

相关问题