13_图表美化六步法 数据没问题分析也到位图画出来了——但就是土土的不像网上那些专业图表。差在细节默认Matplotlib画的是毛坯房那些好看的专业图不过是把默认参数一个个调过。今天拿一张最常见的销售趋势图从默认版一步步改到专业版。先看起点importmatplotlib.pyplotaspltimportnumpyasnp months[1月,2月,3月,4月,5月,6月]sales_A[120,150,135,180,200,220]sales_B[80,95,110,130,125,150]plt.plot(months,sales_A)plt.plot(months,sales_B)plt.title(销售额对比)plt.legend()plt.show()第一步解决中文乱码中文全是方块是Matplotlib默认字体不支持中文。开头加两行全局配置写一次后面所有图都生效importmatplotlib.pyplotaspltimportmatplotlib matplotlib.rcParams[font.sans-serif][SimHei,Microsoft YaHei,PingFang SC]matplotlib.rcParams[axes.unicode_minus]FalseWindows用微软雅黑、Mac用PingFang SC、Linux用SimHei三个都写上兼容性最好。第二步换一套好看的颜色专业图和默认图的第一个视觉差距就是配色。直接用成熟方案主色珊瑚红#ff4d4f辅色#1890ff天蓝、#52c41a翠绿、#722ed1紫罗兰、#fa8c16橘黄。在plot()里加color顺手把线加粗到2像素fig,axplt.subplots(figsize(9,5))ax.plot(months,sales_A,color#ff4d4f,linewidth2,label产品A)ax.plot(months,sales_B,color#1890ff,linewidth2,label产品B)ax.set_title(2026年上半年产品销售趋势,fontsize14)ax.set_xlabel(月份)ax.set_ylabel(销售额万元)ax.legend()plt.tight_layout()plt.show()配色原则一张图颜色别超过4-5种主色饱和度适中折线用纯色填充区域用半透明alpha0.2-0.3。第三步去掉上右两条边框专业图表通常只留下、左两条边框上右是多余的ax.spines[top].set_visible(False)ax.spines[right].set_visible(False)两行代码性价比最高——四条边框在四个方向抓视线把图框死了去掉两边视线自然聚焦到数据本身。第四步加网格但只加横向的没网格读者要对着Y轴比来比去全网格又像格子本。正确做法是只加横向淡网格ax.grid(axisy,alpha0.3,linestyle--)axisy只画横向alpha0.3很淡不抢戏linestyle--虚线比实线更轻。网格退居二线辅助阅读而不是抢戏。第五步把标题和标签调到位ax.set_title(2026年上半年产品销售趋势,fontsize15,fontweightbold,pad15,locleft)ax.set_xlabel(月份,fontsize11,labelpad8)ax.set_ylabel(销售额万元,fontsize11,labelpad8)关键调整标题左对齐人眼从左往右读标题在左边更顺、加粗、加padding透气、字号有层级标题15、标签11、刻度10一眼就知道什么是重点。第六步图例美化 数值标注图例去掉边框、原则是别挡住数据ax.legend(locupper left,frameonFalse,fontsize10)关键数据点旁直接标数字读者不用猜ax.annotate(f{sales_A[-1]}万,xy(len(sales_A)-1,sales_A[-1]),xytext(10,0),textcoordsoffset points,fontsize10,color#ff4d4f)xy是箭头指向的位置xytext是文字相对那个点的偏移。数据点密时只标关键节点最高、最低、最后一个点。改造前后对比六步改完最终版完整代码可直接复制运行importmatplotlib.pyplotaspltimportmatplotlib matplotlib.rcParams[font.sans-serif][SimHei,Microsoft YaHei,PingFang SC]matplotlib.rcParams[axes.unicode_minus]Falsemonths[1月,2月,3月,4月,5月,6月]sales_A[120,150,135,180,200,220]sales_B[80,95,110,130,125,150]fig,axplt.subplots(figsize(9,5))ax.plot(months,sales_A,color#ff4d4f,linewidth2.5,markero,markersize6,label产品A)ax.plot(months,sales_B,color#1890ff,linewidth2.5,markers,markersize5,label产品B)ax.spines[top].set_visible(False)ax.spines[right].set_visible(False)ax.grid(axisy,alpha0.25,linestyle--)ax.set_title(2026年上半年产品销售趋势,fontsize15,fontweightbold,pad15,locleft)ax.set_xlabel(月份,fontsize11,labelpad8)ax.set_ylabel(销售额万元,fontsize11,labelpad8)ax.legend(locupper left,frameonFalse,fontsize10)plt.tight_layout()plt.show()数据没变、图表类型没变气质完全不一样了。差的就是这六件事中文能正常显示换了一套好看的配色去掉了上右两条边框只留横向淡网格标题层级分明图例和标注细节到位真实运行效果把上面最终版完整代码复制到本地跑一遍控制台会依次打印数据统计和六步美化的配置执行情况图片正常保存即说明改造成功。截图里能看到产品A、B 的真实销售额与 max/min/均值以及中文字体、配色、去边框、横向网格、标题层级、图例标注六步逐项配置完成、图片保存成功的完整日志。最后说一句美化不是花架子——好看的图读者更容易读、更愿意信。但也别走向另一个极端。记住所有美化都是为了让数据更容易被读懂而不是为了炫技。去边框为了聚焦数据加网格为了方便读数调颜色为了区分层次每个动作都有目的。下一篇换个库——Seaborn把统计可视化做得更优雅、更省心。梅雅达编程工作室 · Python数据实战系列第13篇图表美化这件事知道方法了就是一层窗户纸。