2017-03-01 25 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創建相同的結構,這會嘗試忠實地實現規範。如果有任何問題,請提交錯誤報告或拉取請求。