经典python 绘图
时间: 2025-04-19 21:14:08 浏览: 19
<think>好的,用户想查找关于Python经典绘图的教程或示例,特别是matplotlib和seaborn的示例。首先,我需要回忆这两个库的基本用法和常见图表类型。用户之前提到了快速排序,但这次的问题完全不同,是关于数据可视化的。所以需要切换到绘图相关的知识库。
接下来,根据用户提供的引用内容,引用[1]和[2]提到了Matplotlib和Seaborn的安装和基础绘图,引用[3]可能涉及更高级的图形,比如3D绘图。但用户需要的是经典示例,所以可能需要涵盖折线图、柱状图、散点图、直方图、热力图等常见图表。
需要确保回答结构清晰,分步骤介绍每个库的示例。先处理Matplotlib,再Seaborn,最后展示组合使用的情况。每个示例需要代码块和结果说明,同时注意使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$。例如,在解释正态分布时可能需要用到公式,如概率密度函数:$f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{(x-\mu)^2}{2\sigma^2} }$,这时候要用正确的格式。
另外,用户提到要生成相关问题,可能需要包括如何调整图表样式、如何保存图像、如何处理大数据集的可视化等。确保问题相关且有助于用户深入学习。
需要检查代码的正确性,比如导入库的语句是否正确,绘图函数的使用是否标准。例如,Matplotlib中plt.subplots()的使用,Seaborn中设置主题的sns.set_theme()。同时,注意代码注释的中文支持,但用户没有特别要求,可能保持英文注释或直接省略,以代码清晰为主。
最后,引用标识要正确添加到参考内容对应的位置。例如,在提到安装步骤时,引用[1]和[2]都涉及安装,可能需要根据内容选择正确的引用号。但根据示例,用户提供的引用中,引用[1]和[2]都提到了安装步骤,所以需要确认哪个更合适。例如,安装命令出现在引用[2]中,因此在代码示例后的说明里添加[^2]。
还要注意用户可能需要的进一步信息,比如如何自定义颜色、添加图例、调整字体大小等,这些可以作为相关问题提出。同时,确保回答中的链接或例程是有效的,比如引用[3]中的链接可能需要检查是否存在,但用户示例中的链接可能只是示例,实际回答中应避免无效链接,所以可能不包含具体URL,而是建议官方文档或可靠资源。
总结步骤:
1. 分Matplotlib和Seaborn两部分,每部分提供2-3个经典示例。
2. 每个示例包含代码和解释,代码格式正确,注释清晰。
3. 使用正确的LaTeX格式处理数学表达式。
4. 生成相关问题,涵盖进一步学习的方向。
5. 正确添加引用标识,引用用户提供的参考内容中的相关部分。</think>### Python经典绘图教程示例(Matplotlib & Seaborn)
#### 一、Matplotlib基础示例
1. **折线图**(数据趋势展示)
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.figure(figsize=(8,4))
plt.plot(x, y, label='$y = \sin(x)$', color='blue', linestyle='--') # 使用LaTeX公式
plt.title("正弦函数曲线")
plt.xlabel("$x$轴")
plt.ylabel("$y$轴")
plt.legend()
plt.grid(True)
plt.show()
```
结果:生成一条蓝色虚线正弦曲线,含坐标标签和网格[^2]。
2. **散点图**(数据分布分析)
```python
np.random.seed(42)
x = np.random.randn(100)
y = x * 0.5 + np.random.randn(100) * 0.3
plt.scatter(x, y, alpha=0.7, c='green', marker='o')
plt.title("随机数据散点图")
plt.xlabel("$X$~$N(0,1)$") # 表示X服从标准正态分布
plt.ylabel("$Y = 0.5X + \epsilon$")
plt.show()
```
数学表达式:若变量服从正态分布可表示为$X \sim \mathcal{N}(\mu, \sigma^2)$[^1]。
---
#### 二、Seaborn高级可视化
1. **直方图与密度曲线**(分布可视化)
```python
import seaborn as sns
sns.set_theme(style="whitegrid") # 设置主题
data = np.random.randn(500)
sns.histplot(data, kde=True, bins=20, color='purple')
plt.title("数据分布直方图(含KDE)")
plt.xlabel("数值范围")
plt.ylabel("频数")
plt.show()
```
说明:`kde=True`添加核密度估计曲线,适合展示概率密度[^2]。
2. **热力图**(矩阵数据可视化)
```python
corr_matrix = np.random.rand(5,5) # 模拟5x5相关系数矩阵
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title("相关系数热力图")
plt.show()
```
---
#### 三、组合使用示例
```python
# 绘制多子图(Matplotlib布局 + Seaborn样式)
fig, axes = plt.subplots(1, 2, figsize=(12,4))
# 子图1:箱线图(Seaborn)
sns.boxplot(data=np.random.rand(10,3), ax=axes[0])
axes[0].set_title("箱线图对比")
# 子图2:三维曲面(Matplotlib)
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))
ax = fig.add_subplot(122, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_title("三维曲面图 $z = \sin(\sqrt{x^2 + y^2})$")
plt.show()
```
三维曲面方程使用独立公式格式:
$$ z = \sin\left( \sqrt{x^2 + y^2} \right) $$
---
阅读全文
相关推荐















