import numpy as np import pandas as pd from scipy import stats,integrate import matplotlib.pyplot as plt import seaborn as sns sns.set() s=[1,3,5,7,9,11,13,15,17,19] y_bar=[3,4,6,8,9,10,9,11,7,8] y_line=[2,3,5,7,8,9,8,10,6,7] plt.bar(x,y_bar) plt.plot(x,y_line,'-o',color='y') plt.show()
时间: 2025-05-21 17:42:00 浏览: 14
### 如何正确使用 Matplotlib 和 Seaborn 绘制柱状图和折线图
#### 使用 Matplotlib 和 Seaborn 绘制柱状图
为了绘制柱状图,可以分别利用 `Matplotlib` 的 `plt.bar()` 函数以及 `Seaborn` 的 `sns.barplot()` 函数。以下是两者的实现方式:
```python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 创建示例数据
data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [3, 7, 5, 9]}
df = pd.DataFrame(data)
# 使用 Matplotlib 绘制柱状图
plt.figure(figsize=(8, 4))
plt.bar(df['Category'], df['Values'], color='skyblue')
plt.title('Bar Chart with Matplotlib', fontsize=16)
plt.xlabel('Category', fontsize=12)
plt.ylabel('Values', fontsize=12)
plt.show()
# 使用 Seaborn 绘制柱状图
plt.figure(figsize=(8, 4))
sns.barplot(x='Category', y='Values', data=df, palette="viridis")
plt.title('Bar Chart with Seaborn', fontsize=16)
plt.xlabel('Category', fontsize=12)
plt.ylabel('Values', fontsize=12)
plt.show()
```
上述代码展示了如何通过 `Matplotlib` 和 `Seaborn` 来绘制柱状图[^1]。两者的主要区别在于 `Seaborn` 提供了更高级别的接口,并支持更多的样式选项。
---
#### 使用 Matplotlib 和 Seaborn 绘制折线图
对于折线图的绘制,可以选择 `Matplotlib` 的 `plt.plot()` 或者 `Seaborn` 的 `sns.lineplot()` 方法。下面是具体的实现代码:
```python
# 创建示例数据
data_line = {'Year': range(2010, 2020), 'Sales': [12, 15, 18, 20, 25, 30, 35, 40, 45, 50]}
df_line = pd.DataFrame(data_line)
# 使用 Matplotlib 绘制折线图
plt.figure(figsize=(8, 4))
plt.plot(df_line['Year'], df_line['Sales'], marker='o', linestyle='-', color='green')
plt.title('Line Chart with Matplotlib', fontsize=16)
plt.xlabel('Year', fontsize=12)
plt.ylabel('Sales', fontsize=12)
plt.grid(True)
plt.show()
# 使用 Seaborn 绘制折线图
plt.figure(figsize=(8, 4))
sns.lineplot(x='Year', y='Sales', data=df_line, marker='o', color='purple')
plt.title('Line Chart with Seaborn', fontsize=16)
plt.xlabel('Year', fontsize=12)
plt.ylabel('Sales', fontsize=12)
plt.grid(True)
plt.show()
```
这段代码解释了如何用两种工具来生成折线图[^2]。值得注意的是,`Seaborn` 默认会对数据进行聚合操作(如果存在重复值),而 `Matplotlib` 不会自动处理这些情况。
---
#### 示例代码常见问题分析
当尝试运行以上代码时,可能会遇到一些常见的错误或疑惑点:
1. **缺少必要的库**:如果没有安装 `matplotlib` 或 `seaborn`,则需要先执行 `pip install matplotlib seaborn` 安装所需依赖项[^2]。
2. **数据格式不匹配**:确保输入到绘图函数中的数据结构是一致的,比如 Pandas DataFrame 的列名应与调用参数相匹配。
3. **图形显示异常**:在某些环境中(如 Jupyter Notebook),可能需要显式添加 `%matplotlib inline` 魔法命令以便正常渲染图像。
4. **颜色设置冲突**:如果未指定颜色方案,则默认配色可能不符合预期效果;可以通过调整 `color` 参数来自定义视觉风格。
---
#### 总结
无论是选择 `Matplotlib` 还是 `Seaborn`,都可以高效完成基本类型的图表制作任务。然而,在实际应用过程中需要注意细节上的差异性及其适用场景的选择依据[^3]。
阅读全文
相关推荐


















