怎么把这个excel表格里面的数据可视化成图标,用python语言实现
丙肝 | 乙肝 | 戊肝 | 甲肝 | 肝 炎 | 肝炎(未分型) | ||||||||||||||||||||
年龄分组 | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | 发病数 | 死亡数 | 发病率(1/10万) | 死亡率(1/10万) | |
0- | 555 | 1 | 3.4050 | 0.0061 | 492 | 0 | 3.0185 | 15 | 0 | 0.0920 | 23 | 0 | 0.1411 | 1225 | 1 | 7.5155 | 0.0061 | 140 | 0 | 0.8589 | |||||
1- | 59 | 0 | 0.3349 | 365 | 1 | 2.0720 | 0.0057 | 9 | 0 | 0.0511 | 162 | 0 | 0.9196 | 632 | 1 | 3.5877 | 0.0057 | 37 | 0 | 0.2100 | |||||
2- | 56 | 0 | 0.3184 | 391 | 0 | 2.2228 | 6 | 0 | 0.0341 | 96 | 0 | 0.5458 | 577 | 0 | 3.2802 | 28 | 0 | 0.1592 | |||||||
3- | 38 | 0 | 0.2163 | 520 | 0 | 2.9596 | 10 | 0 | 0.0569 | 123 | 0 | 0.7001 | 727 | 0 | 4.1377 | 36 | 0 | 0.2049 | |||||||
4- | 51 | 0 | 0.3423 | 480 | 0 | 3.2213 | 5 | 0 | 0.0336 | 128 | 0 | 0.8590 | 694 | 0 | 4.6575 | 29 | 0 | 0.1946 | |||||||
5- | 47 | 0 | 0.2916 | 467 | 0 | 2.8973 | 6 | 0 | 0.0372 | 97 | 0 | 0.6018 | 650 | 0 | 4.0326 | 33 | 0 | 0.2047 | |||||||
6- | 45 | 0 | 0.2872 | 468 | 0 | 2.9865 | 8 | 0 | 0.0511 | 76 | 0 | 0.4850 | 630 | 0 | 4.0203 | 33 | 0 | 0.2106 | |||||||
7- | 34 | 0 | 0.2222 | 436 | 0 | 2.8489 | 9 | 0 | 0.0588 | 67 | 0 | 0.4378 | 581 | 0 | 3.7964 | 35 | 0 | 0.2287 | |||||||
8- | 39 | 0 | 0.2558 | 394 | 0 | 2.5841 | 6 | 0 | 0.0394 | 65 | 0 | 0.4263 | 535 | 0 | 3.5089 | 31 | 0 | 0.2033 | |||||||
9- | 40 | 0 | 0.2708 | 432 | 0 | 2.9242 | 4 | 0 | 0.0271 | 54 | 0 | 0.3655 | 563 | 0 | 3.8109 | 33 | 0 | 0.2234 | |||||||
10- | 256 | 0 | 0.3372 | 2850 | 0 | 3.7539 | 52 | 0 | 0.0685 | 261 | 0 | 0.3438 | 3666 | 0 | 4.8287 | 247 | 0 | 0.3253 | |||||||
15- | 623 | 0 | 0.8859 | 12363 | 3 | 17.5806 | 0.0043 | 215 | 0 | 0.3057 | 271 | 0 | 0.3854 | 13868 | 3 | 19.7207 | 0.0043 | 391 | 0 | 0.5560 | |||||
20- | 2457 | 0 | 2.9275 | 41266 | 3 | 49.1674 | 0.0036 | 557 | 0 | 0.6637 | 545 | 0 | 0.6494 | 45364 | 3 | 54.0501 | 0.0036 | 528 | 0 | 0.6291 | |||||
25- | 8829 | 1 | 7.4722 | 0.0008 | 94379 | 7 | 79.8751 | 0.0059 | 1059 | 0 | 0.8963 | 1053 | 0 | 0.8912 | 106249 | 8 | 89.9210 | 0.0068 | 903 | 0 | 0.7642 | ||||
30- | 10594 | 3 | 9.3659 | 0.0027 | 110408 | 12 | 97.6092 | 0.0106 | 1705 | 0 | 1.5074 | 1417 | 0 | 1.2527 | 125200 | 17 | 110.6864 | 0.0150 | 1048 | 2 | 0.9265 | 0.0018 | |||
35- | 14205 | 2 | 14.1876 | 0.0020 | 91731 | 18 | 91.6187 | 0.0180 | 1778 | 0 | 1.7758 | 1633 | 0 | 1.6310 | 110335 | 20 | 110.1999 | 0.0200 | 964 | 0 | 0.9628 | ||||
40- | 20745 | 14 | 20.3482 | 0.0137 | 93418 | 37 | 91.6313 | 0.0363 | 2218 | 0 | 2.1756 | 1708 | 1 | 1.6753 | 0.0010 | 119243 | 53 | 116.9624 | 0.0520 | 1122 | 1 | 1.1005 | 0.0010 | ||
45- | 29995 | 14 | 24.0600 | 0.0112 | 118487 | 71 | 95.0425 | 0.0570 | 3365 | 2 | 2.6992 | 0.0016 | 2215 | 0 | 1.7767 | 155570 | 87 | 124.7881 | 0.0698 | 1468 | 0 | 1.1775 | |||
50- | 31998 | 12 | 27.3398 | 0.0103 | 117376 | 61 | 100.2886 | 0.0521 | 3933 | 2 | 3.3604 | 0.0017 | 2163 | 1 | 1.8481 | 0.0009 | 157108 | 76 | 134.2365 | 0.0649 | 1583 | 0 | 1.3526 | ||
55- | 25916 | 10 | 31.3156 | 0.0121 | 90259 | 65 | 109.0646 | 0.0785 | 3249 | 1 | 3.9259 | 0.0012 | 1730 | 0 | 2.0904 | 122425 | 76 | 147.9324 | 0.0918 | 1237 | 0 | 1.4947 | |||
60- | 23209 | 10 | 28.1422 | 0.0121 | 79918 | 65 | 96.9050 | 0.0788 | 3235 | 1 | 3.9226 | 0.0012 | 1393 | 0 | 1.6891 | 108845 | 79 | 131.9806 | 0.0958 | 1053 | 3 | 1.2768 | 0.0036 | ||
65- | 21130 | 12 | 31.6744 | 0.0180 | 66156 | 33 | 99.1694 | 0.0495 | 2915 | 3 | 4.3697 | 0.0045 | 1404 | 0 | 2.1046 | 92512 | 49 | 138.6777 | 0.0735 | 882 | 1 | 1.3221 | 0.0015 | ||
70- | 14602 | 8 | 34.8159 | 0.0191 | 40259 | 30 | 95.9905 | 0.0715 | 1786 | 2 | 4.2584 | 0.0048 | 1034 | 0 | 2.4654 | 58233 | 40 | 138.8463 | 0.0954 | 535 | 0 | 1.2756 | |||
75- | 9283 | 4 | 33.9635 | 0.0146 | 22442 | 18 | 82.1080 | 0.0659 | 1016 | 1 | 3.7172 | 0.0037 | 734 | 0 | 2.6855 | 33821 | 23 | 123.7401 | 0.0841 | 337 | 0 | 1.2330 | |||
80- | 5710 | 8 | 29.9146 | 0.0419 | 11315 | 15 | 59.2791 | 0.0786 | 634 | 3 | 3.3215 | 0.0157 | 507 | 1 | 2.6562 | 0.0052 | 18333 | 27 | 96.0463 | 0.1415 | 159 | 0 | 0.8330 | ||
85及以上 | 3144 | 3 | 31.6690 | 0.0302 | 5220 | 8 | 52.5801 | 0.0806 | 360 | 1 | 3.6262 | 0.0101 | 312 | 0 | 3.1427 | 9105 | 12 | 91.7130 | 0.1209 | 69 | 0 | 0.6950 | |||
2023年6月19日 下午5:15 |
说明:python小白,学习了一段时间后,自己写了个小程序,可实现对文件夹里的所有excel表格中的所有sheet页面格式进行修改并保存。
疑问:openpyxl中如何让列宽自适应,首行合并单元格默认取第一个表格中的内容作为title。这两个还不解决不了,还望大佬们不吝赐教!
废话不多说,直接上代码。
###########################准备工作(导入相关模块及定义文件路径)#################
#导入excel表格相关功能模块
import os
from openpyxl import load_workbook,Workbook
from openpyxl.styles import PatternFill,Alignment, Side, Border,Font
#定义文件夹路径(路径根据实际情况进行修改,可直接复制资源管理器中的路径并替换\为/)
file_path=('E:/4.Python/python_format_all_sheets/')
#取出文件夹下的所有文件
files=os.listdir(file_path)
##########################定义格式部分(该部分根据实际情况进行修改)###############
# 定义对齐样式横向居中、纵向居中
align = Alignment(horizontal='center', vertical='center')
# 定义边样式为细条
side = Side('thin')
line = Border(bottom=side, top=side,left=side,right=side)
# 定义字体
fontObj1 = Font(name=u'宋体', bold=True, italic=False, size=11)
fontObj2 = Font(name=u'宋体', bold=False, italic=False, size=11)
# 定义填充颜色
header_fill1=PatternFill('solid',fgColor='C9C9C9')
header_fill2=PatternFill(patternType = None)
###################################内容处理部分#################################
print('----------------开始分割线----------------\n开始处理~~~')
#从将文件夹里的每个文件同路径进行拼接
for file in files:
wbs=file_path+file
#对表格格式进行处理
wb=load_workbook(wbs)
sheets=wb.sheetnames
#循环处理
#取每个sheet表
for i in range(0,len(sheets)):
ws = wb[sheets[i]]
#取第一行的每个单元格
for cell in ws[1]:
cell.alignment = align
cell.font = fontObj1
cell.border = line
cell.fill = header_fill1
#取后续所有sheet页的每行
for row in ws.iter_rows(min_row=2):
#取每行的每个单元格
for cell in row:
cell.alignment = align
cell.font = fontObj2
cell.border = line
cell.fill = header_fill2
#每个处理完后进行保存并打印提示语
wb.save(wbs)
print('已处理完'+wbs)
#####################################功能执行完成#################################
#打印总体完成提示语
print('-------------------结束分割线-----------------\n所有表格格式均已处理完毕!')
答案:
可以使用以下Python库来实现Excel表格数据可视化: 1. pandas:用于读取Excel文件并将其转换为数据框,可以使用数据框进行后续的数据分析和数据可视化。 2. matplotlib:用于绘制各种类型的图表,如折线图、散点图、柱状图等等。 3. seaborn:基于matplotlib,用于绘制一些高级的统计图表,如箱型图、热力图、分类图等等。 4. plotly:用于交互式图表可视化,可以绘制各种类型的图表,并且具有很好的交互性。 5. bokeh:也是一个交互式图表库,使用Python语言编写,支持各种类型的数据可视化,包括动画、地图、热力图等等。 以下是一些示例代码:
使用pandas读取Excel文件:
import pandas as pd
df = pd.read_excel('data.xlsx')
print(df.head())
使用matplotlib展示柱状图:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data.xlsx')
plt.bar(df['name'], df['score'])
plt.show()
使用seaborn展示箱型图:
import pandas as pd
import seaborn as sns
df = pd.read_excel('data.xlsx')
sns.boxplot(x='year', y='score', data=df)
使用plotly展示散点图:
import pandas as pd
import plotly.express as px
df = pd.read_excel('data.xlsx')
fig = px.scatter(df, x='age', y='score', color='gender')
fig.show()
使用bokeh展示地理图:
from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource, GMapOptions
from bokeh.plotting import gmap
df = pd.read_excel('data.xlsx')
map_options = GMapOptions(lat=40, lng=-100, zoom=4)
api_key = "YOUR_API_KEY"
p = gmap(api_key, map_options, title="Map")
source = ColumnDataSource(df)
p.circle(x="lon", y="lat", size=15, fill_color="blue", fill_alpha=0.8, source=source)
output_file("gmap.html")
show(p)
请注意,以上代码仅作为示例,实际使用时需要根据具体需求进行修改和调整。另外,还有很多其他的Python库和工具可以用于Excel数据可视化,可以根据自己的实际需求进行选择和使用。
能发一下 Excel 吗?