python读取csv多列数据画图
时间: 2025-01-22 15:33:15 浏览: 52
### 使用 Python Pandas 读取 CSV 文件中的多列数据并用 Matplotlib 绘制图形
#### 导入必要的库
为了实现这一目标,首先需要导入几个重要的 Python 库:
```python
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
```
这些库提供了处理数据和创建可视化所需的功能[^1]。
#### 设置字体样式以便中文显示正常
如果图表中包含中文标签或文字,则应设置合适的字体以确保正确渲染:
```python
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
```
这一步骤对于避免中文乱码至关重要[^2]。
#### 加载 CSV 数据到 DataFrame 中
利用 `pandas` 的强大功能可以轻松加载 CSV 文件的内容至内存中作为 DataFrame 对象:
```python
data = pd.read_csv("example.csv") # 假设文件名为 example.csv
print(data.head()) # 打印前几行查看结构
```
此命令会将整个 CSV 文件转换成易于操作的数据表形式,并允许访问其中任意一列或多列的数据[^3]。
#### 提取特定列用于绘图
假设要绘制第二列 (`column_2`) 和第三列 (`column_3`) 随着第一列 (`column_1`) 变化的趋势图,可以通过以下方式获取相应数值:
```python
x_values = data.iloc[:, 0].values # 获取第1列的所有值作为X轴坐标
y1_values = data.iloc[:, 1].values # 获取第2列的所有值作为Y轴第一个系列
y2_values = data.iloc[:, 2].values # 获取第3列的所有值作为Y轴第二个系列
```
这里使用了 `.iloc[]` 方法来指定按位置索引选取整列的数据;`.values` 则用来提取纯 NumPy 数组供后续绘图函数调用。
#### 创建多个子图展示不同关系
接下来可以根据需求分别绘制两个不同的子图,在同一个窗口内比较两者的差异:
```python
fig, (ax1, ax2) = plt.subplots(2)
# 子图1:柱状图表示 column_2 vs column_1 关系
ax1.bar(x=x_values, height=y1_values)
ax1.set_title('Column 2 Values')
ax1.set_xlabel('Index from Column 1')
ax1.set_ylabel('Values of Column 2')
# 子图2:折线图表示 column_3 vs column_1 关系
ax2.plot(x_values, y2_values, marker='o', linestyle='-')
ax2.set_title('Column 3 Values')
ax2.set_xlabel('Index from Column 1')
ax2.set_ylabel('Values of Column 3')
plt.tight_layout()
plt.show()
```
上述代码片段展示了如何在同一张图片里安排两张独立但关联紧密的统计图表——一张是条形图,另一张则是带有标记点连接而成的趋势线。每张图都有自己的标题以及 X 轴 Y 轴说明,使得读者更容易理解所表达的信息。
阅读全文
相关推荐


















