我一直在尝试将两种类型的图表(列和行)合并为一个图表。我已经设法这样做,但我无法得到所需的格式,即有2个y轴,一个底部x轴和一个顶部x轴。 使用MS Excel 2010,可以实现这种外观,但我没有采用我的python代码来获得相同的结果。
这是我的python代码:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
data = [
[1, 2, 3, 4, 5],
[10, 40, 50, 20, 10],
[1,1,2,2,3,3,4,4,5,5],
[200,200,100,100,300,300,250,250,350,350]
]
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
worksheet.write_column('D2', data[3])
#
chart_1= workbook.add_chart({'type': 'column'})
#
chart_1.add_series ({
'name': 'Data',
'categories': '=Sheet1!$A$2:$A$6',
'values': '=Sheet1!$B$2:$B$6',
'fill': {'color': '#004d96'},
'gap': 5,
'y2_axis': True
})
#
chart_2= workbook.add_chart({'type': 'line'})
#
chart_2.add_series ({
'name': 'Data 2',
'categories': '=Sheet1!$C$2:$C$11',
'values': '=Sheet1!$D$2:$D$11',
'line': {'color': '#ff0000'},
'x2_axis': True
})
chart_2.combine(chart_1)
chart_1.set_x_axis({
'name': 'Step',
'interval_unit': 1,
'interval_tick': 1,
'major_tick_mark': 'none',
})
#
chart_1.set_y2_axis({
'name': 'Value',
})
chart_2.set_x2_axis({
'name': 'Step',
'interval_unit': 1,
'interval_tick': 1,
'visible': True
})
#
chart_2.set_y_axis({
'name': 'Value',
})
worksheet.insert_chart('B20', chart_2)
workbook.close()
这导致我得到以下结果: Current status
我想要获得的内容应该如下所示: Alternative to the result
或者甚至更好: Ideal Result