导读:上节课我们解决了环境配置和中文乱码,画出了第一张图。但很多学员发现:“图是能看了,但还是透着一股‘学生气’,不够专业。”
今天,第二课《Matplotlib基础:告别“丑默认”,绘制汇报级折线与柱状图》,我们将直接拆解“高颜值”图表的基因:配色、布局、细节。不用学美术,照抄代码模板,让你的图表瞬间拥有“咨询顾问”范儿!
💡 为什么你的图表看起来“很廉价”?
你是否遇到过这种情况:
职场真相:在汇报中,“清晰”比“复杂”重要,“美观”即“专业”。
一张好的汇报图表,应该像杂志插图一样:配色高级、重点突出、数据一目了然。
今天,我们就用 Matplotlib 这把“手术刀”,对默认图表进行一场“整容手术”。
第一部分:审美升级——三大“去土味”法则
在写代码之前,先记住这三个让图表变高级的核心法则(无需数学基础):
💡 独家福利:文末附带一套“职场万能配色代码库”,复制即用!
老板没时间盯着坐标轴去读数。
场景:你需要向总监汇报《2026年第一季度各部门营收趋势》。
目标:画出一张线条平滑、重点突出、带有数据标签的专业折线图。
import matplotlib.pyplot as pltimport numpy as np# --- 0. 基础配置 (复用第一课的乱码解决代码) ---plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False# --- 1. 准备数据 ---months = ['1月', '2月', '3月']dept_a = [120, 135, 150] # 销售部dept_b = [80, 95, 110] # 市场部# --- 2. 创建画布与配色 (核心:自定义高级色) ---# 定义配色方案:商务蓝 + 活力橙 (避免默认红蓝)color_main = '#2E86C1'# 沉稳蓝color_sub = '#F39C12'# 警示/次要橙fig, ax = plt.subplots(figsize=(10, 6), dpi=100) # dpi设置高一点,更清晰# --- 3. 绘制折线 (核心:增加标记点和线宽) ---# 销售部:主线,加粗,带圆点标记ax.plot(months, dept_a, marker='o', linewidth=2.5, color=color_main, label='销售部', markersize=8)# 市场部:次线,稍细,带方块标记ax.plot(months, dept_b, marker='s', linewidth=2, color=color_sub, label='市场部', markersize=8)# --- 4. 添加数据标签 (核心:让数据会说话) ---# 封装一个简单函数来自动标注数值defadd_labels(x, y, color):for i, v in enumerate(y): ax.text(i, v + 2, str(v), ha='center', va='bottom', fontsize=11, color=color, fontweight='bold')add_labels(months, dept_a, color_main)add_labels(months, dept_b, color_sub)# --- 5. 美化细节 (核心:去边框、调网格) ---# 设置标题和坐标轴ax.set_title('2026年Q1 核心部门营收趋势对比', fontsize=16, pad=20, fontweight='bold')ax.set_xlabel('月份', fontsize=12)ax.set_ylabel('营收金额 (万元)', fontsize=12)# 优化网格:只保留Y轴虚线,颜色变淡ax.grid(axis='y', linestyle='--', alpha=0.3)# 去除顶部和右侧的边框 (让图表更透气)ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)# 调整图例位置ax.legend(loc='upper left', frameon=False, fontsize=12) # frameon=False 去掉图例背景框# --- 6. 输出 ---plt.tight_layout() # 自动调整布局,防止标签被切plt.show()运行后,你将看到一张截然不同的图表:

场景:年终汇报,需要对比《今年 vs 去年》各季度的业绩。
痛点:默认柱状图柱子太细、颜色太俗、没有具体数值。
import matplotlib.pyplot as pltimport numpy as np# --- 0. 基础配置 ---plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False# --- 1. 准备数据 ---quarters = ['Q1', 'Q2', 'Q3', 'Q4']last_year = [200, 240, 220, 300]this_year = [230, 260, 280, 350]x = np.arange(len(quarters)) # 标签位置 [0, 1, 2, 3]width = 0.35# 柱子宽度# --- 2. 创建画布 ---fig, ax = plt.subplots(figsize=(10, 6))# --- 3. 绘制双柱 (核心:错位排列) ---# 去年:灰色系 (作为陪衬)rects1 = ax.bar(x - width/2, last_year, width, label='2025年', color='#BDC3C7', edgecolor='none')# 今年:主色调 (作为重点)rects2 = ax.bar(x + width/2, this_year, width, label='2026年', color='#2E86C1', edgecolor='none')# --- 4. 添加数值标签 (核心:自动计算高度并标注) ---defautolabel(rects):for rect in rects: height = rect.get_height() ax.annotate(f'{int(height)}', xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 垂直偏移3个点 textcoords="offset points", ha='center', va='bottom', fontsize=10, fontweight='bold')autolabel(rects1)autolabel(rects2)# --- 5. 美化细节 ---ax.set_title('2025-2026 年度季度业绩对比', fontsize=16, pad=20, fontweight='bold')ax.set_xticks(x)ax.set_xticklabels(quarters, fontsize=12)ax.set_ylabel('业绩 (万元)', fontsize=12)# 添加一条明显的基准线 (可选)ax.axhline(0, color='black', linewidth=0.8) # 底部基线ax.grid(axis='y', linestyle='--', alpha=0.2) # 淡化网格# 去除多余边框ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['left'].set_visible(True) # 保留左侧Y轴ax.legend(frameon=False, loc='upper left')plt.tight_layout()plt.show()运行后,你将看到一张截然不同的图表:

x - width/2):这是画双柱图的关键,让两组柱子并排而不是重叠。别再纠结选什么颜色了!直接把下面这些十六进制代码复制到你的 color= 参数里:

AttributeError: 'Axes' object has no attribute 'bar_label'pip install --upgrade matplotlib 升级即可。或者使用文中提供的 autolabel 自定义函数(兼容性更好)。□□□?plt.rcParams 配置。SimHei 无效,请尝试改为 Arial Unicode MS 或 Heiti TC。width 参数(默认0.8,双柱图建议0.35-0.4)。💻 源代码已经帮你准备好了!
复制 → 粘贴 → 改几个参数,你就能一键生成老板一看就点头的专业报表。
别光收藏吃灰,今天就动手,把你最近那份 Excel 数据拿来“整容”,让它从路人甲变身汇报主角!
👇下期想学什么?评论区许愿,小居优先安排!
👍点赞:证明你已通关,解锁“进阶地图”!
🔖 收藏:这篇干货值得放进“防身术”文件夹,下次汇报前翻出来直接用!
➕ 关注:跟着小居,下次老板要看图时,你就是办公室里唯一会“魔法”的人!