本系统是一套面向多源数据的可视化分析工具,基于Python数据分析生态构建,可读取结构化Excel数据源并自动生成专业级分析图表和HTML报告。
系统聚焦两大分析场景:
1. A股金融市场分析:读取沪深A股4000+只股票的实时数据,自动生成板块分布饼图、成交量Top15排行柱状图、涨跌幅分布直方图,直观展示市场结构和资金动向。针对个股(如贵州茅台600519),生
成日K线走势图并叠加MA20/MA60双均线,标注历史最高收盘价,辅助技术分析决策。
2. 豆瓣影评数据分析:读取豆瓣电影Top250完整榜单,生成评分分布直方图、评分区间占比饼图,以及年度电影数量与平均评分的双Y轴趋势图。可直观看到经典电影年代分布和评分走势。
所有图表统一采用专业配色方案,支持中文渲染,输出为高分辨率PNG图片(150
DPI)。同时自动生成一个响应式HTML分析报告页面,将所有图表嵌入精美卡片布局,包含概览统计卡片和技术指标说明,可直接用于演示汇报或嵌入Web页面。
技术架构:Python 3 + Pandas + Matplotlib + openpyxl
1. 数据读取层:使用pandas读取Excel数据源(openpyxl引擎),自动处理中文字段名和缺失值。支持多工作簿数据源,通过统一的数据接口屏蔽底层文件路径差异,上层分析函数无需关心数据来源。
2. 可视化引擎:基于Matplotlib面向对象API构建,统一管理全局样式(配色、字体、网格、边框)。配置6色自定义调色板(Indigo/Teal/Amber/Rose/Cyan/Green),所有图表风格一致。
3. K线图与均线计算(核心难点):读取茅台641条日K线数据(日期/开/高/低/收/量),使用pandas的rolling(20/60).mean()计算移动均线。通过fill_between填充最高-最低价区间,叠加双均线折线
,并使用idxmax定位历史最高收盘价配合annotate标注箭头,在一张图上呈现5个信息维度。
4. 双Y轴图表(年份趋势图):左侧Y轴为柱状图展示每年电影数量,右侧Y轴为折线图展示平均评分,使用twinx()创建共享X轴的双坐标轴,解决不同量级数据的可视化问题。
5. HTML报告生成:不使用任何前端框架,纯Python字符串拼接生成响应式HTML页面。采用CSS
Grid自适应布局(桌面2列/移动端1列),渐变Hero区域、统计卡片、悬停动效。所有图表以Base64或相对路径嵌入,报告独立可分发。
6. 中文字体兼容:通过matplotlib的font.sans-serif配置项设置字体回退链(微软雅黑→SimHei→思源黑体),覆盖Windows/macOS/Linux三平台的中文正常显示。