2017-03-01 57 views
0

我正在研究一个需要在Excel中生成xy图的项目。 x和y值的标准偏差与它们相关。我想将x和y标准偏差显示为误差线。我可以让每个错误栏单独显示,但不能同时显示。 下面是代码的一个例子。任何建议将不胜感激。如何使用openpyxl显示x和y错误栏?

D201_avgX = Reference(resultsws,min_col=D201_avg_col,min_row=2,max_col=D201_avg_col,max_row=smprow_n) 
D201_stdevX = NumDataSource(NumRef(Reference(resultsws,min_col=D201_stdev_col,min_row=2,max_col=D201_stdev_col,max_row=smprow_n))) 
D201_stdev = ErrorBars(plus = D201_stdevX,minus = D201_stdevX,errBarType = 'both',errDir = 'x', errValType = 'cust') 
D199_avgY = Reference(resultsws,min_col=D199_avg_col,min_row=1,max_col=D199_avg_col,max_row=smprow_n) 
D199_stdevY = NumDataSource(NumRef(Reference(resultsws,min_col=D199_stdev_col,min_row=1,max_col=D199_stdev_col,max_row=smprow_n))) 
D199_stdev = ErrorBars(plus = D199_stdevY,minus = D199_stdevY,errBarType = 'both',errDir = 'y', errValType = 'cust') 
D201_D199_ser = SeriesFactory(D199_avgY,D201_avgX,title_from_data=True) 
D201_D199_ser.marker.symbol = 'circle' 
D201_D199_ser.graphicalProperties.line.noFill = True 
D201_D199_ser.errBars = D201_stdev 
D201_D199_ser.errBars = D199_stdev 


D201_D199_chart = ScatterChart() 
D201_D199_chart.series.append(D201_D199_ser) 
D201_D199_ser.trendline = Trendline(dispRSqr=True) 
D201_D199_chart.x_axis.title = 'D201' 
D201_D199_chart.y_axis.title = 'D199' 
D201_D199_chart.height = 10 
D201_D199_chart.width = 15 

回答

0

这可能是实现不完美:它是基于规范,这在一些细节上不明确。我建议你用Excel或类似的方法创建一个相关的图表,并查看生成的XML。您应该能够使用openpyxl创建相同的结构,这会尝试忠实地实现规范。如果有任何问题,请提交错误报告或拉取请求。