2017-08-28 76 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