1. 实际应用场景与痛点
场景
在职场中,汇报工作成果时常常需要展示数据,例如:
- 销售额月度对比
- 项目进度完成率
- 客户来源占比
- 成本与利润分析
不同数据类型适合不同的图表:
- 柱状图:分类数据对比
- 折线图:趋势变化
- 饼图:占比分布
痛点
1. 手动制作图表耗时 → 影响汇报准备效率
2. 样式不统一 → 影响专业度
3. 数据格式不匹配 → 需要反复调整
4. 缺乏自定义样式 → 无法突出关键信息
2. 核心逻辑
1. 输入核心数据(支持 JSON 或交互式输入)
2. 选择图表类型(柱状图/折线图/饼图)
3. 自定义样式(颜色、标题、标签)
4. 调用绘图库生成图表(Matplotlib / Seaborn)
5. 保存为图片(PNG/SVG)并显示
3. 代码实现(模块化)
目录结构
report_chart_tool/
├── main.py
├── chart_generator.py
├── data_loader.py
├── style_config.py
└── README.md
style_config.py
# 样式配置文件:定义默认颜色和字体
DEFAULT_STYLE = {
"colors": ["#4E79A7", "#F28E2B", "#E15759", "#76B7B2", "#59A14F"],
"font_family": "SimHei", # 支持中文
"title_fontsize": 16,
"label_fontsize": 12
}
data_loader.py
def load_data_interactive():
"""
交互式输入数据
:return: (labels, values)
"""
labels = input("请输入数据标签(逗号分隔):").strip().split(",")
values = list(map(float, input("请输入数据值(逗号分隔):").strip().split(",")))
return labels, values
chart_generator.py
import matplotlib.pyplot as plt
from style_config import DEFAULT_STYLE
def generate_bar_chart(labels, values, title="柱状图", save_path="bar_chart.png"):
"""
生成柱状图
"""
plt.figure(figsize=(8, 6))
plt.bar(labels, values, color=DEFAULT_STYLE["colors"][:len(labels)])
plt.title(title, fontsize=DEFAULT_STYLE["title_fontsize"], fontfamily=DEFAULT_STYLE["font_family"])
plt.xlabel("类别", fontsize=DEFAULT_STYLE["label_fontsize"])
plt.ylabel("数值", fontsize=DEFAULT_STYLE["label_fontsize"])
plt.tight_layout()
plt.savefig(save_path)
plt.show()
def generate_line_chart(labels, values, title="折线图", save_path="line_chart.png"):
"""
生成折线图
"""
plt.figure(figsize=(8, 6))
plt.plot(labels, values, marker='o', color=DEFAULT_STYLE["colors"][0])
plt.title(title, fontsize=DEFAULT_STYLE["title_fontsize"], fontfamily=DEFAULT_STYLE["font_family"])
plt.xlabel("类别", fontsize=DEFAULT_STYLE["label_fontsize"])
plt.ylabel("数值", fontsize=DEFAULT_STYLE["label_fontsize"])
plt.tight_layout()
plt.savefig(save_path)
plt.show()
def generate_pie_chart(labels, values, title="饼图", save_path="pie_chart.png"):
"""
生成饼图
"""
plt.figure(figsize=(8, 6))
plt.pie(values, labels=labels, colors=DEFAULT_STYLE["colors"][:len(labels)], autopct='%1.1f%%')
plt.title(title, fontsize=DEFAULT_STYLE["title_fontsize"], fontfamily=DEFAULT_STYLE["font_family"])
plt.tight_layout()
plt.savefig(save_path)
plt.show()
main.py
from data_loader import load_data_interactive
from chart_generator import generate_bar_chart, generate_line_chart, generate_pie_chart
def main():
print("=== 职场汇报数据可视化工具 ===")
print("可选图表类型:1.柱状图 2.折线图 3.饼图")
choice = input("请选择图表类型(1/2/3):").strip()
labels, values = load_data_interactive()
title = input("请输入图表标题:").strip()
if choice == "1":
generate_bar_chart(labels, values, title)
elif choice == "2":
generate_line_chart(labels, values, title)
elif choice == "3":
generate_pie_chart(labels, values, title)
else:
print("无效选择")
if __name__ == "__main__":
main()
4. README.md
# 职场汇报数据可视化工具
## 功能
输入核心数据,自动生成柱状图/折线图/饼图,支持自定义样式,帮助职场人清晰展示成果。
## 使用方法
1. 安装依赖:`pip install matplotlib`
2. 运行 `python main.py`
3. 选择图表类型,输入数据和标题
4. 图表自动保存并显示
## 示例
=== 职场汇报数据可视化工具 ===
可选图表类型:1.柱状图 2.折线图 3.饼图
请选择图表类型(1/2/3):1
请输入数据标签(逗号分隔):一月,二月,三月
请输入数据值(逗号分隔):100,150,120
请输入图表标题:季度销售额
5. 使用说明
1. 安装 Python 3.x 和 Matplotlib
2. 运行
"python main.py"
3. 按提示输入数据
4. 图表会显示在屏幕上并保存为 PNG 文件
6. 核心知识点卡片
知识点 说明
模块化设计 数据加载、样式配置、图表生成分离
Matplotlib 绘图 支持多种图表类型
交互式输入
"input()" 获取数据
样式自定义 颜色、字体、标题设置
文件保存
"plt.savefig()" 导出图片
7. 总结
本工具通过 Python + Matplotlib 实现了职场汇报数据的快速可视化,解决了手动制图耗时、样式不统一、数据格式不匹配等痛点,帮助职场人高效制作专业图表,提升汇报说服力。
后续可扩展:
- 支持 Excel 数据导入
- 增加 更多图表类型(雷达图、热力图)
- 开发 Web 版(Flask/Dash)
如果你需要,还可以 加上 Excel 导入功能 或 做成 Web 应用,让数据可视化更便捷。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!