第五章:Python数据可视化利器-Matplotlib用法详解
Matplotlib是Python最强大的数据可视化库,广泛应用于科研、商业分析等领域。本文聚焦基础图表绘制与高级定制技巧,助你快速掌握数据图形化表达。文末提供《Python数据可视化实战源码包》,含销售趋势、人口统计等案例,可直接运行修改。
Matplotlib是Python最强大的数据可视化库,广泛应用于科研、商业分析等领域。本文聚焦基础图表绘制与高级定制技巧,助你快速掌握数据图形化表达。文末提供《Python数据可视化实战源码包》可直接运行修改。
一、快速入门:5种基础图表
1. 折线图(趋势分析)
python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 6, 3]
plt.plot(x, y, linestyle='--', color='blue', marker='o')
plt.title("月度销售额趋势")
plt.xlabel("月份")
plt.ylabel("销售额(万元)")
plt.show()

关键参数:linestyle(线型)、marker(标记点样式)、linewidth(线宽)。
2. 柱状图(对比分析)
python
categories = ['A', 'B', 'C']
values = [23, 45, 37]
plt.bar(categories, values, color=['#FF6B6B', '#4ECDC4', '#45B7D1'])
plt.grid(axis='y', alpha=0.5) # 添加横向网格线
3. 散点图(相关性分析)
python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 6, 3]
plt.scatter(x, y, s=50, c=y, cmap='viridis') # s控制点大小,c用颜色映射数值
plt.colorbar(label='数值强度')
plt.show()
4. 饼图(占比分析)
python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
labels = ['电商', '门店', '批发']
sizes = [55, 30, 15]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', explode=(0.1, 0, 0))
plt.show()
5. 子图布局(多图组合)
python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
ax1=plt.subplot(211)
ax2=plt.subplot(212)
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 6, 3]
categories = ['A', 'B', 'C']
values = [23, 45, 37]
ax1.plot(x, y)
ax2.bar(categories, values)
plt.tight_layout() # 自动调整间距
plt.show()
二、进阶技巧:让图表更专业
-
样式美化
-
使用
plt.style.use('ggplot')调用预置主题(如seaborn、dark_background) -
自定义字体:
plt.rcParams['font.sans-serif'] = ['SimHei'](解决中文乱码)
-
-
动态可视化
python
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
line, = ax.plot([], [])
def update(frame):
line.set_data(x[:frame], y[:frame])
return line,
ani = FuncAnimation(fig, update, frames=len(x), interval=200)
plt.show()
-
3D绘图
python
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x=[3,2,4,5,2,1,5]
y=[5,3,1,2,5,6,7]
z=[9,3,2,4,5,3,5]
ax.scatter(x, y, z, c='r', marker='o')
plt.show()

三、实战案例解析
在《Python数据可视化实战源码包》中,包含以下经典场景:
-
销售数据仪表盘:组合折线图、柱状图与饼图,使用
subplots布局 -
人口金字塔图:通过双柱状图反向对称呈现年龄分布
-
热力图绘制:用
imshow()展示矩阵数据关联性(适合用户行为分析) -
动态排序图:结合
FuncAnimation实现条形图竞赛效果
示例代码片段(热力图):
python
import numpy as np
data = np.random.rand(10, 10)
plt.imshow(data, cmap='coolwarm')
plt.colorbar()
plt.xticks(range(10), ['A','B','C','D','E','F','G','H','I','J'])
plt.yticks(range(10), ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月'])
四、学习建议
-
从模仿开始:运行附件源码,逐步修改参数(颜色、尺寸等)观察变化
-
善用文档:通过
plt.plot?查看函数详细参数说明 -
数据驱动:优先用Pandas导入数据(如
df.plot()快速绘图) -
导出图表:使用
plt.savefig('chart.png', dpi=300)保存高清图片
附:下载《Python数据可视化实战源码包》,包含10+行业案例代码及数据集,注释率100%,适合二次开发!
掌握Matplotlib,让数据开口说话——你的分析报告将从此与众不同!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)