2017-08-28 101 views
1

エラーバーシリーズを参考にすることが可能かどうか疑問に思っていました。私がしたいのは、既に計算された誤差値を持つ参照セルです。棒グラフの上部に表示させます。Openpyxlバーグラフエラーバー

似たような質問がありましたが、私が試しているバージョンをやっているようですが、私の例を編集するとエラーになります。 アドバイスをいただければ幸いです。あなたの時間をありがとう。

私はグラフとエラーバーは enter image description here エラーに見えるようにしたいものの例:

はTypeError:期待クラスの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

は、私はあなたのポイントを参照してください私の現在のコード、numRefnumLitを置き換える:

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が必要です。

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(...に従ってください:

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) 

あなたは、少なくとも以下のパラメータを必要としています。

+0

ありがとうございました!私は間違っているか、 'def list2errorbars(...' function)のエラー値が必要なのでしょうか?これらのシートの作業が優れている方法は、すべての計算を行い、次にグラフとエラーバーはすべて参照されます。そのように設定するのはどうですか?今は、時間の長さを計算する方法と、「プラス」と「マイナス」の参照を設定する方法のバーが現れます。返信いただきありがとうございます!! – laxer

+0

これでうまくいきました素晴らしい!ヘルプとすばらしい説明をありがとう! – laxer