数学建模--matplot.pyplot(结尾附线条样式表格)
matplotlib.pyplot
绘图接口
1. 用法
导入模块
import matplotlib.pyplot as plt
import numpy as np # 用于生成示例数据
绘制简单图表
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形和坐标轴
plt.figure(figsize=(8, 4)) # 设置图表大小
plt.plot(x, y, label='sin(x)') # 绘制曲线
plt.title('正弦函数') # 添加标题
plt.xlabel('X轴') # 添加x轴标签
plt.ylabel('Y轴') # 添加y轴标签
plt.legend() # 显示图例
plt.grid(True) # 显示网格线
plt.show() # 显示图表
2. 类型
折线图
plt.plot(x, y, color='blue', linewidth=2, linestyle='-', marker='o')
散点图
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y, s=50, c='red', alpha=0.6)
柱状图
categories = ['A', 'B', 'C', 'D']
values = [25, 40, 30, 15]
plt.bar(categories, values, color='skyblue')
直方图
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=30, alpha=0.7, color='purple')
饼图
sizes = [30, 25, 20, 15, 10]
labels = ['A', 'B', 'C', 'D', 'E']
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
3. 多图布局
使用subplot
或subplots
在同一窗口显示多个图表:
fig, axes = plt.subplots(2, 2, figsize=(10, 8)) # 创建2x2网格# 绘制四个不同的图表
axes[0, 0].plot(x, np.sin(x))
axes[0, 1].scatter(x, np.random.rand(len(x)))
axes[1, 0].bar(categories, values)
axes[1, 1].hist(data, bins=30)plt.tight_layout() # 自动调整布局
plt.show()
4. 样式
- 颜色:使用名称(如
'red'
)、十六进制码(如'#FF5733'
)或RGB值。 - 线条样式:
linestyle='--'
(虚线)、marker='x'
(标记点)。 - 字体设置:
plt.rcParams['font.size'] = 12 # 全局字体大小 plt.title('标题', fontweight='bold')
保存图表
plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')
以下是Matplotlib中常用的线条样式(linestyle
参数)和标记样式(marker
参数)的表格总结,方便你快速查阅:
样式表格(当然也建议访问官方文档)
1. 线条样式(linestyle)
代码 | 描述 | 示例效果 |
---|---|---|
'-' | 实线 | ───────── |
'--' | 虚线 | ---------- |
'-.' | 点划线 | -.-.-.-.- |
':' | 点线 | ::::::::: |
'' | 无线条(仅标记) |
2. 标记样式(marker)
代码 | 描述 | 示例效果 |
---|---|---|
'.' | 小点 | ● |
'o' | 圆圈 | ◯ |
's' | 正方形 | □ |
'^' | 上三角形 | △ |
'v' | 下三角形 | ▽ |
'*' | 星形 | ✶ |
'x' | 叉号 | ✖ |
'+' | 加号 | + |
'D' | 菱形 | ◇ |
3. 使用示例
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 10, 10)plt.figure(figsize=(10, 6))# 实线 + 圆圈标记
plt.plot(x, x, '-o', label='实线+圆圈')# 虚线 + 方形标记
plt.plot(x, x+1, '--s', label='虚线+方形')# 点划线 + 三角形标记
plt.plot(x, x+2, '-.^', label='点划线+三角形')# 点线 + 星形标记
plt.plot(x, x+3, ':*', label='点线+星形')plt.legend()
plt.show()
4. 线条属性补充
- 线宽:
linewidth
或lw
参数(如lw=2
) - 颜色:
color
参数(如color='red'
或简写c='r'
) - 透明度:
alpha
参数(0-1之间,如alpha=0.5
)