Python XlsxWriter - 图表格式


可以自定义图表的默认外观,使其更具吸引力、更具解释性且用户友好。使用XlsxWriter,我们可以对 Chart 对象进行以下增强 -

  • 设置图表标题并设置其格式

  • 设置X、Y轴标题及其他参数

  • 配置图表图例

  • 聊天布局选项

  • 设置边框和图案

标题

您可以通过调用图表对象的set_title()方法来设置和配置图表对象的主标题。各种参数可以如下 -

  • 名称- 设置要在图表上方显示的图表的名称(标题)。name 属性是可选的。默认情况下没有图表标题。

  • name_font - 设置图表标题的字体属性。

  • Overlay - 允许标题覆盖在图表上。

  • 布局- 以图表相对单位设置标题的 (x, y) 位置。

  • - 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 - 设置轴的显示​​单位。

在前面的示例中,标记列表的数据以柱形图的形式显示,我们设置图表格式选项,例如图表标题、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!$B$1',
   'categories': '=Sheet1!$A$2:$A$4',
   'values': '=Sheet1!$B$2:$B$4',
})

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()

输出

该图表显示标题标题如下 -

标题轴