Python XlsxWriter – 柱状图
条形图类似于柱状图,除了数据是用比例的水平条而不是垂直列来表示。为了产生一个条形图, add_chart() 方法的类型参数必须设置为’bar’。
chart1 = workbook.add_chart({'type': 'bar'})
柱状图显示如下 –
柱状图有两种子类型,即堆叠式和 百分比式。 在堆积图中,某个类别的不同颜色的条形图被一个接一个地放在一起。在 叠加百分比 图中,每个条形图的长度显示其在每个类别的总价值中的百分比。
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!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}})
chart1.set_legend({'position':'bottom', 'font':
{'name':'calibri','size': 9, 'bold': True}})
worksheet.insert_chart('B7', chart1)
wb.close()
输出
输出文件将看起来像下面给出的文件: