这篇文章我们来了解“Python Excel图表的创建和操作是怎样的”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。
函数名 | 说明 | 参数 |
---|---|---|
add_chart() | 创建图表对象 | {type:样式} |
add_series() | 定义需要展示的数据 | 字典 |
set_title() | 定义图表title | 字符串 |
参数 | 说明 | 值 |
---|---|---|
categories | 展示的标题 | =Sheet1!$A$1:$A$4 Shert1:工作簿名称 $A1 : 1:1:A$4 表示从第A行的第一个值到第四个值去展示标题 |
values | 展示的数据 | =Sheet1!$B1 : 1:1:B$4 Shert1:工作簿名称 $B1 : 1:1:B$4 表示从第A行的第一个值到第四个值去展示标题 |
name | 表名 |
$A$1:$A$4 表示从第A行的第一个值到第四个值去展示标题
样式名 | 说明 |
---|---|
area | 区域样式表 |
bar | 条形样式表 |
column | 柱状样式表 |
line | 线条样式表 |
pie | 饼图样式表 |
doughnut | 圆环样式表 |
scatter | 散点样式表 |
stock | 库存样式表 |
rader | 雷达样式表 |
这里继续使用上一章节的 “将项目中的 study.xlsx 文件的内容写入 write.xlsx” 的案例;
代码示例如下:
# coding:utf-8
import xlsxwriter
import xlrd
# excel = xlsxwriter.Workbook('write.xlsx') # 初始化 excel 对象
# book = excel.add_worksheet('study') # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级'] # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title): # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
# book.write(0, index, data)
# excel.close()
def read(): # 定义一个 read 函数读取 "study.xlsx" 文件
result = []
excel = xlrd.open_workbook('study.xlsx')
book = excel.sheet_by_name('学生手册')
for i in book.get_rows():
content = []
for j in i:
content.append(j.value)
result.append(content)
return result
def write(content): # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
excel = xlsxwriter.Workbook('write.xlsx')
book = excel.add_worksheet('study')
for index, data in enumerate(content):
print(data)
for sub_index, sub_data in enumerate(data):
# print(sub_index, sub_data)
book.write(index, sub_index, sub_data)
book1 = excel.add_worksheet('学生等级') # 定义 "学生等级" 工作簿
data = [ # 定义 data 列表 用以存放学生成绩所处等级与数量
['优秀', '良好', '中', '差'],
[15, 25, 55, 5]
]
book1.write_column('A1', data[0]) # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
book1.write_column('B1', data[1])
chart = excel.add_chart({'type': 'column'}) # 定义图表样式为 柱状样式表
chart.add_series({ # 添加需要展示的数据
'categories': '=学生等级!$A1:$A4',
'values': '=学生等级!$B1:$B4',
'name': '成绩占比'
})
chart.set_title({'name': '成绩占比图表'}) # 定义图表title
book1.insert_chart('A10', chart) # 将 chart 放在 excel 表格对应工作簿的 A10 位置
excel.close()
if __name__ == '__main__':
result = read()
write(result)
运行结果如下:
代码示例如下:
# coding:utf-8
import xlsxwriter
import xlrd
# excel = xlsxwriter.Workbook('write.xlsx') # 初始化 excel 对象
# book = excel.add_worksheet('study') # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级'] # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title): # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
# book.write(0, index, data)
# excel.close()
def read(): # 定义一个 read 函数读取 "study.xlsx" 文件
result = []
excel = xlrd.open_workbook('study.xlsx')
book = excel.sheet_by_name('学生手册')
for i in book.get_rows():
content = []
for j in i:
content.append(j.value)
result.append(content)
return result
def write(content): # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
excel = xlsxwriter.Workbook('write.xlsx')
book = excel.add_worksheet('study')
for index, data in enumerate(content):
print(data)
for sub_index, sub_data in enumerate(data):
# print(sub_index, sub_data)
book.write(index, sub_index, sub_data)
book1 = excel.add_worksheet('学生等级') # 定义 "学生等级" 工作簿
data = [ # 定义 data 列表 用以存放学生成绩所处等级与数量
['优秀', '良好', '中', '差'],
[15, 25, 55, 5]
]
book1.write_column('A1', data[0]) # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
book1.write_column('B1', data[1])
chart = excel.add_chart({'type': 'column'}) # 定义图表样式为 柱状样式表
chart.add_series({ # 添加需要展示的数据
'categories': '=学生等级!$A1:$A4',
'values': '=学生等级!$B1:$B4',
'name': '成绩占比'
})
chart.set_title({'name': '成绩占比图表'}) # 定义图表title
book1.insert_chart('A10', chart) # 将 chart 放在 excel 表格对应工作簿的 A10 位置
chart = excel.add_chart({'type': 'bar'})
chart.add_series({
'categories': '=学生等级!$A1:$A4',
'values': '=学生等级!$B1:$B4',
'name': '成绩占比'
})
chart.set_title({'name': '成绩占比图表'})
book1.insert_chart('A25', chart)
chart = excel.add_chart({'type': 'pie'})
chart.add_series({
'categories': '=学生等级!$A1:$A4',
'values': '=学生等级!$B1:$B4',
'name': '成绩占比'
})
chart.set_title({'name': '成绩占比图表'})
book1.insert_chart('A40', chart)
excel.close()
if __name__ == '__main__':
result = read()
write(result)
运行结果如下:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理