我正在尝试以编程方式使用xlsx writer:
我发现error_bar属性(plus_values,minus_values)无法识别xlsx编写器中其他位置使用的单元格范围['sheet name',start_row,start_col,end_row,end_col]的数组格式。
是否有一种方法可以利用模块中必须已经存在的数组->字符串格式的转换功能? (例如xlsxwriter.cell_range(['data', 1,2,252,2])
返回字符串"='data'!$D$2:$D$253"
)
或者,这是否足够普遍,可以更新自定义错误栏功能以支持数组以及字符串格式的单元格范围?
请参见下面的示例代码。
import xlsxwriter
import pandas as pd
import numpy as np
writer = pd.ExcelWriter('err_bar_test.xlsx', engine='xlsxwriter')
x_axis = np.arange(0,8*np.pi,0.1)
y_axis = np.sin(x_axis)
noise = np.random.random_sample(len(x_axis))
df = pd.DataFrame({'axis' : x_axis,
'value': y_axis,
'std_dev' : noise,
} )
df.to_excel(writer, sheet_name='data')
workbook = writer.book
worksheet = writer.sheets['data']
chart = workbook.add_chart({'type': 'scatter'})
worksheet.insert_chart('F2', chart)
chart.add_series({
'values': ['data', 1,2,252,2],
'categories': ['data', 1,1,252,1],
'y_error_bars':{
'type': 'custom',
# This works
'plus_values': "='data'!$D$2:$D$253",
'minus_values': "='data'!$D$2:$D$253",
# This does not work :(
# 'plus_values': ['data',1,3,252,3],
# 'minus_values': ['data',1,3,252,3],
},
'smooth': 'true',
})
writer.save()