2017-08-28 82 views
1

我在想,如果有可能的誤差條系列設定爲基準。我想要做的是參考單元格的錯誤值已計算。然後將它顯示在條形圖的頂部。Openpyxl條形圖誤差條

我發現在那裏他們似乎做一個版本的什麼我想一個類似的問題,但是當我編輯的例子,我得到一個錯誤。 任何意見將不勝感激。感謝您的時間。

什麼,我想圖和誤差線看起來像 enter image description here 錯誤示例:

類型錯誤:預期類的openpyxl.chart.error_bar.ErrorBars「

類似的問題 openpyxl chart error bar styles

我當前的代碼

  chart1 = BarChart() 
      chart1.type = "col" 
      chart1.height = 10 
      chart1.width = col + 7 
      chart1.title = name 

      data = Reference(ws, min_col=4, min_row=23, max_col=17) 
      cats = Reference(ws, min_col=4, min_row=29, max_col = 17) 
      eBars = Reference(ws, min_col=4, min_row=26, max_col=17) 

      s= Series(data) 

      series = SeriesFactory(data, title="y direction error") 
      series.errBars = eBars 

      chart1.append(s) 
      chart1.append(series) 
      chart1.legend = None 
      chart1.set_categories(cats) 

      chart1.x_axis.tickLblPos = "low" 
      #chart1.x_axis.tickLblSkip = 0 

      chart1.shape = 10 
      ws.add_chart(chart1, "C3") 

回答

1

Comment: ... setting a reference to the plus and minus

我明白你的意思,與numRef替換numLit

NumDataSource/NumRef

class openpyxl.chart.data_source.NumDataSource(numRef=None, numLit=None) 
    `numLit` Values must be of type <class ‘openpyxl.chart.data_source.NumData’> 
    `numRef` Values must be of type <class ‘openpyxl.chart.data_source.NumRef’> 
eBarsNumDataSource = NumDataSource(NumRef(eBars)) 
series.errBars = ErrorBars(errDir='y', errValType='cust', plus=eBarsNumDataSource, minus=eBarsNumDataSource) 

Question: TypeError: expected class 'openpyxl.chart.error_bar.ErrorBars'

eBars是類型但你需要鍵入openpyxl.chart.error_bar.ErrorBars

class openpyxl.chart.error_bar.ErrorBars

class openpyxl.chart.error_bar.ErrorBars(
    errDir=None, 
    errBarType='both', 
    errValType='fixedVal', 
    noEndCap=None, plus=None, minus=None, val=None, spPr=None, extLst=None) 

你至少需要如下參數:

ErrorBars(errDir=Value must be one of {‘x’, ‘y’}, 
      plus=Values must be of type <class ‘openpyxl.chart.data_source.NumDataSource’>, 
      minus=Values must be of type <class ‘openpyxl.chart.data_source.NumDataSource’>, 
     ) 

按照鏈接類似的問題def list2errorbars(...

+0

感謝您回覆!我錯了還是我需要的'高清list2errorbars誤差值(...'功能工作?這些片工作Excel不會所有的計算,然後將路圖和誤差條都提及。有什麼辦法將其設置成這樣?現在看來,酒吧如何計算時間的頭VS引用,並設置爲'plus'和'minus'參考。再次謝謝您的回覆! – laxer

+0

制定出太棒了!!非常感謝你的幫助和令人敬畏的解釋! – laxer