Python XlsxWriter – 图表格式化
图表的默认外观可以被定制,以使其更有吸引力、更有解释力和更方便使用。通过 XlsxWriter ,我们可以对图表对象进行以下改进– 1.
- 设置和格式化图表标题
-
设置X和Y轴的标题和其他参数
-
配置图表图例
-
聊天布局选项
-
设置边框和图案
标题
你可以通过调用图表对象的 set_title() 方法来设置和配置其主标题。可以的各种参数如下 –
- Name – 设置图表的名称(标题),以显示在图表上方。名称属性是可选的。默认是没有图表标题。
-
name_font – 设置图表标题的字体属性。
-
Overlay – 允许将标题叠加在图表上。
-
Layout – 设置标题在图表相对单位中的(x, y)位置。
-
None – Excel会自动添加一个图表标题。None选项可以关闭这个默认的标题。它也关闭了所有其他的 set_title() 选项。
X轴和Y轴
两个方法 set_x_axis() 和 set_y_axis() 用于轴的标题, name_font 用于标题文本, num_font 用于X和Y轴上显示的数字。
- name – 设置轴的标题或说明。
-
name_font – 设置轴标题的字体属性。
-
num_font – 设置坐标轴数字的字体属性。
-
num_format – 设置轴的数字格式。
-
major_gridlines – 配置轴的主要网格线。
-
display_units – 设置轴的显示单位。
在前面的例子中,marklist的数据以柱状图的形式显示,我们设置了图表格式选项,如图表标题和X以及Y轴的标题,以及它们的其他显示属性,如下所示
chart1.set_x_axis(
{'name': 'Students', 'name_font':{'name':'Arial', 'size':16, 'bold':True},})
chart1.set_y_axis(
{
'name': 'Marks', 'name_font':
{'name':'Arial', 'size':16, 'bold':True}, 'num_font':{'name':'Arial', 'italic':True}
}
)
例子
在完整的代码中加入上述片段。现在它看起来就像下面给出的那样
import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()
chart1 = wb.add_chart({'type': 'column'})
# Add the worksheet data that the charts will refer to.
headings = ['Name', 'Phy', 'Maths']
data = [
["Jay", 30, 60],
["Mohan", 40, 50],
["Veeru", 60, 70],
]
worksheet.write_row(0,0, headings)
worksheet.write_row(1,0, data[0])
worksheet.write_row(2,0, data[1])
worksheet.write_row(3,0, data[2])
chart1.add_series({
'name': '=Sheet1!B1',
'categories': '=Sheet1!A2:A4',
'values': '=Sheet1!B2:B4',
})
chart1.add_series({
'name': ['Sheet1', 0, 2],
'categories': ['Sheet1', 1, 0, 3, 0],
'values': ['Sheet1', 1, 2, 3, 2],
})
chart1.set_title ({'name': 'Marklist',
'name_font': {'name':'Times New Roman', 'size':24}
})
chart1.set_x_axis({'name': 'Students',
'name_font': {'name':'Arial', 'size':16, 'bold':True},
})
chart1.set_y_axis({'name': 'Marks',
'name_font':{'name':'Arial', 'size':16, 'bold':True},
'num_font':{'name':'Arial', 'italic':True}
})
worksheet.insert_chart('B7', chart1)
wb.close()
输出
图表显示 标题 和 坐标轴 的说明,如下所示