Python xlsxwriter 修改图表大小

Python xlsxwriter modify chart size

您好,我正在使用 xlswriter 创建一些图表,它们工作正常但是图表的输入数据太多,使图表看起来很局促。 我可以手动调整图表的大小,但目的是制作一个自动脚本来创建所需的输出

有没有人找到更改图表默认大小的方法?

这是我正在做的一些代码:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_bar.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})

headings = ['FIRST','second','third','fourth','fifth','sixth','seven','eight','nine','ten',
'eleven','twelve','thirteen','fourteen','fifteen','sixteen'
]

data = [
    [0,0,0,1,0,0,0,0,0,0,0,0,0],
    [0,0,0,4,0,0,0,0,0,0,0,0,0],
    [0,0,0,5,0,0,0,0,0,0,0,0,0],
    [5,0,0,21,0,0,0,0,0,0,0,0,0],
    [0,0,1,2,0,0,0,0,0,0,0,0,0],
    [0,5,6,175,0,17,2,4,10173,2,6,18,0],
    [1,1,19,246,0,3,5,3,2184,1,8,30,0],
    [0,0,56,1810,0,2,0,0,0,0,0,0,0],
    [0,1,10,117,0,16,5,3,1841,5,8,21,0],
    [0,6,301,3425,0,11,15,2,4166,7,35,24,1],
    [2,5,19,275,0,45,0,0,4208,0,0,2,0],
    [0,0,7,125,0,8,1,0,740,0,0,0,0],
    [0,16,42,276,0,50,0,1,9206,0,0,2,0],
    [0,21,47,112,0,92,1,0,1,0,9,1,0],
    [1,0,3,5,0,0,0,0,0,0,0,0,0],
    [1,18,17,146,1,37,5,0,1582,1,0,1,0]
]
worksheet.write_row('B1', headings, bold)

min_list=[]

for col_data in data:
    min_list.append([0 if x >10 else x for x in col_data])

for col_pos, col_data in enumerate(min_list, 1):
    worksheet.write_column(1,col_pos,col_data)

chart1 = workbook.add_chart({'type': 'column'})

col_start = 1
row_end = len(min_list[0])
row_start=1
for col_position in range(1,len(min_list[0]) +1 ):
    chart1.add_series({
            'name': headings[col_position-1],
            'values': ['Sheet1', row_start, col_position, row_end, col_position ]
        })
[![enter image description here][1]][1]
# Add a chart title and some axis labels.
chart1.set_title ({'name': 'Total de errors per PMP'})
chart1.set_x_axis({'name': 'Error Code'})
chart1.set_y_axis({'name': 'Total Errors'})

# Set an Excel chart style.
chart1.set_style(11)

# Insert the chart into the worksheet (with an offset).
worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10})
workbook.close()

当前大小

所需的图表大小

您可以通过在选项中设置 x_scaley_scale 来调整 xlsxwriter 图表的大小。例如:

worksheet.insert_chart('D2', chart1, {'x_scale': 2, 'y_scale': 0.75})

请参阅文档中的选项,了解 insert_chart(). There is also a chart.set_size() 方法,它做同样的事情。