2016-03-08 4 views
2

Я только начинаю с XlsxWriter (0.8.4). Я пытаюсь создать диаграммы, но оси x и y неверны, я хочу их поменять, x для y. Я использую эти блоки кода, чтобы создать лист и ChartSheetСмещение оси X и Y в xlsxwriter

def new_sheet(self,sheetnm,sheetdata): 
    self.ws = self.wb.add_worksheet(sheetnm) 
    logging.info(self.ws) 
    metadata = sheetdata[1] 
    head = (colh[0] for colh in metadata) 
    self.ws.write_row(0,0,head) 
    rows = sheetdata[0] 
    for ix,row in enumerate(rows): 
     self.ws.write_row(ix+1,0,row)    

def new_chart(self,sheetnm,ctitle,xtitle,ytitle,rows,cols): 
    self.cs = self.wb.add_chartsheet(sheetnm+"_chart") 
    chart = self.wb.add_chart({'type': 'bar'}) 
    chart.set_title({'name': ctitle}) 
    for row in range(1,rows): 
     chart.add_series({'categories':[sheetnm,0,1,0,cols-1],'values':[sheetnm,row,1,row,cols-1],'name':[sheetnm,row,0,row,0]}) 
    chart.set_x_axis({'name': xtitle}) 
    chart.set_y_axis({'name': ytitle}) 
    self.cs.set_chart(chart) 

Он работает, делая листы. Если я просто использую Excel для вставки диаграммы, он вставляет его с осью x/y ожидания. Как я могу сделать то же самое?

Generated Chart Sheet

[Worksheet with data[2]

Inserted Chart with expected X/Y axis

+0

Попробуйте 'column' Вместо' bar' и обратите внимание на диапазоны данных, которые используют серия. – jmcnamara

ответ

1

Это работало замечательно. Благодаря! Я не привык делать диаграммы, поэтому разные типы меня путают, столбец против вертикальной полосы против горизонтальной полосы.