在xlsxwriter中合并2种图表类型时的辅助x和y轴

时间:2017-11-30 12:48:40

标签: python pandas xlsx xlsxwriter

我一直在尝试将两种类型的图表(列和行)合并为一个图表。我已经设法这样做,但我无法得到所需的格式,即有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

0 个答案:

没有答案