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_scale
和 y_scale
来调整 xlsxwriter 图表的大小。例如:
worksheet.insert_chart('D2', chart1, {'x_scale': 2, 'y_scale': 0.75})
请参阅文档中的选项,了解 insert_chart(). There is also a chart.set_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_scale
和 y_scale
来调整 xlsxwriter 图表的大小。例如:
worksheet.insert_chart('D2', chart1, {'x_scale': 2, 'y_scale': 0.75})
请参阅文档中的选项,了解 insert_chart(). There is also a chart.set_size() 方法,它做同样的事情。