您好,登录后才能下订单哦!
# 适合练手的Matplotlib小项目有哪些
Matplotlib是Python中最流行的数据可视化库之一,掌握它对于数据分析、科学计算和机器学习至关重要。以下是10个适合初学者和中级用户的练手项目,涵盖基础图表到高级可视化技巧。
---
## 一、基础图表绘制
### 1. 折线图与散点图
**项目目标**:绘制正弦函数和随机散点图
```python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, label='sin(x)')
plt.scatter(x, np.random.rand(100), color='red', label='random points')
plt.legend()
plt.show()
学习要点:
- plot()
和scatter()
的基本用法
- 图例添加与样式调整
项目目标:展示不同水果的销量占比
fruits = ['Apple', 'Banana', 'Orange']
sales = [45, 30, 25]
plt.figure(figsize=(12,5))
plt.subplot(121) # 1行2列第1个图
plt.bar(fruits, sales)
plt.subplot(122) # 第2个图
plt.pie(sales, labels=fruits, autopct='%1.1f%%')
plt.show()
学习要点:
- 多子图布局(subplot
)
- 饼图百分比显示
项目目标:用Seaborn风格绘制相关矩阵
import seaborn as sns
data = np.random.rand(5,5)
sns.heatmap(data, annot=True)
plt.title("Correlation Matrix")
plt.show()
学习要点: - Matplotlib与Seaborn的集成 - 注释文本显示
项目目标:绘制三维函数图像
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 = np.sin(np.sqrt(X**2 + Y**2))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()
学习要点:
- 3D坐标系的创建
- meshgrid
的使用方法
项目目标:绘制带有移动平均线的股价K线图
from mplfinance.original_flavor import candlestick_ohlc
import pandas as pd
# 假设df包含OHLC数据
df = pd.read_csv('stock_data.csv')
fig, ax = plt.subplots()
candlestick_ohlc(ax, df.values, width=0.6)
plt.plot(df['Close'].rolling(20).mean(), label='20-day MA')
plt.legend()
plt.show()
学习要点: - 金融数据可视化 - 滚动统计量计算
项目目标:使用Basemap绘制疫情分布图
from mpl_toolkits.basemap import Basemap
m = Basemap(projection='mill', llcrnrlat=20, urcrnrlat=50,
llcrnrlon=70, urcrnrlon=140, resolution='c')
m.drawcoastlines()
m.drawcountries()
x, y = m(116.4, 39.9) # 北京坐标
m.plot(x, y, 'ro', markersize=10)
plt.title("COVID-19 Outbreak")
plt.show()
注意:Basemap已停止维护,推荐使用Cartopy替代
项目目标:创建实时更新的传感器数据仪表盘
import random
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'r-')
def update(frame):
xdata.append(frame)
ydata.append(random.random())
ln.set_data(xdata, ydata)
ax.relim()
ax.autoscale_view()
return ln,
ani = FuncAnimation(fig, update, frames=range(100), blit=True)
plt.show()
学习要点:
- FuncAnimation
的使用
- 实时数据更新机制
项目目标:用极坐标绘制玫瑰图
theta = np.linspace(0, 2*np.pi, 8)
r = np.random.randint(1,10,8)
plt.polar(theta, r, 'r-')
plt.fill(theta, r, 'pink', alpha=0.5)
plt.title("Rose Diagram")
plt.show()
通过完成这些项目,你将掌握: - 90%的常用图表绘制方法 - 自定义样式和动画技巧 - 实际业务场景的应用能力 “`
注:实际代码运行时可能需要安装相关依赖库(如pip install seaborn mplfinance basemap
)。建议从简单项目开始,逐步挑战复杂可视化。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。