Python XlsxWriter - 條形圖



條形圖類似於柱形圖,區別在於資料以水平條的形式表示,而不是垂直的列。要生成條形圖,add_chart() 方法的 type 引數必須設定為 'bar'。

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

條形圖如下所示:

Bar Chart1

條形圖有兩種子型別,分別是堆疊和percent_stacked。在堆疊圖中,某個類別的不同顏色的條形一個接一個地放置。在percent_stacked 圖中,每個條形的長度顯示其在每個類別總值中的百分比。

chart1 = workbook.add_chart({
   'type': 'bar',
   'subtype': 'percent_stacked'
})

示例

下面給出生成百分比堆疊條形圖的程式:

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()
chart1 = wb.add_chart({'type': 'bar', 'subtype': 'percent_stacked'})

# 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}})

chart1.set_legend({'position':'bottom', 'font':
   {'name':'calibri','size': 9, 'bold': True}})

worksheet.insert_chart('B7', chart1)

wb.close()

輸出

輸出檔案將如下所示:

Bar Chart2
廣告

© . All rights reserved.