引言
数据可视化是数据分析中不可或缺的一环,它能够帮助我们更直观地理解数据的分布、趋势和关系。Matplotlib作为Python中功能强大的绘图库,在数据可视化领域有着广泛的应用。本文将为您介绍超过200个Matplotlib数据可视化案例,帮助您轻松上手数据之美。
Matplotlib基础
在开始案例之前,我们需要先了解Matplotlib的基本用法。以下是一些Matplotlib的基础知识:
安装与导入
!pip install matplotlib
import matplotlib.pyplot as plt
绘制简单图表
以下是一个简单的折线图示例:
import numpy as np
# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
# 绘制折线图
plt.plot(x, y)
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Simple Line Plot')
plt.show()
实用案例
1. 折线图
折线图常用于展示数据随时间或类别的变化趋势。
# 绘制折线图:股票走势
import pandas as pd
# 加载数据
data = pd.read_csv('stock_data.csv')
# 绘制折线图
plt.plot(data['日期'], data['收盘价'])
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.title('股票走势')
plt.show()
2. 柱状图
柱状图常用于比较不同类别的数值。
# 绘制柱状图:销售额对比
import pandas as pd
# 加载数据
data = pd.read_csv('sales_data.csv')
# 绘制柱状图
plt.bar(data['产品'], data['销售额'])
plt.xlabel('产品')
plt.ylabel('销售额')
plt.title('销售额对比')
plt.show()
3. 散点图
散点图常用于分析两个变量之间的关系。
# 绘制散点图:身高与体重关系
import pandas as pd
# 加载数据
data = pd.read_csv('height_weight_data.csv')
# 绘制散点图
plt.scatter(data['身高'], data['体重'])
plt.xlabel('身高')
plt.ylabel('体重')
plt.title('身高与体重关系')
plt.show()
4. 饼图
饼图常用于展示各部分占总体的比例。
# 绘制饼图:市场份额
import pandas as pd
# 加载数据
data = pd.read_csv('market_share_data.csv')
# 绘制饼图
plt.pie(data['市场份额'], labels=data['公司'], autopct='%1.1f%%')
plt.title('市场份额')
plt.show()
5. 箱线图
箱线图常用于查看数据的分布和离群值。
# 绘制箱线图:薪资分布
import pandas as pd
# 加载数据
data = pd.read_csv('salary_data.csv')
# 绘制箱线图
plt.boxplot(data['薪资'])
plt.title('薪资分布')
plt.show()
6. 3D图表
Matplotlib还支持绘制3D图表。
from mpl_toolkits.mplot3d import Axes3D
# 创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = x**2 + y**2
# 创建3D图表
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z)
plt.title('3D曲面图')
plt.show()
7. 动态图表
Matplotlib还支持绘制动态图表。
import matplotlib.animation as animation
# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
# 创建动态图表
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)
ax.set_xlim(0, 2 * np.pi)
ax.set_ylim(-1, 1)
ax.set_title('动态图表')
# 初始化动画
def init():
line.set_data([], [])
return line,
# 更新动画
def update(frame):
x_data = np.linspace(0, 2 * np.pi, 100)
y_data = np.sin(x_data + frame / 10.0)
line.set_data(x_data, y_data)
return line,
# 创建动画
ani = animation.FuncAnimation(fig, update, frames=200, init_func=init, blit=True)
plt.show()
总结
通过以上案例,您已经掌握了Matplotlib的基本用法和多种数据可视化技巧。希望这些案例能够帮助您更好地理解和应用Matplotlib,从而轻松上手数据之美。