python基于csv文件用不同颜色将两列数据按行画直方图
时间: 2023-06-14 15:08:22 浏览: 200
moxing_python数据清洗_读取csv文件_数据清洗_
5星 · 资源好评率100%
可以使用`matplotlib`库来画直方图,具体步骤如下:
1. 读取csv文件,将需要绘制直方图的两列数据分别保存到两个列表中。
2. 使用`numpy`库的`histogram`函数统计每个区间的数据个数,返回两个数组,一个是每个区间的数据个数,另一个是每个区间的边界。
3. 使用`matplotlib`库的`bar`函数将统计结果绘制成直方图,设置不同的颜色区分不同的列。
下面是一个示例代码:
```python
import csv
import numpy as np
import matplotlib.pyplot as plt
# 读取csv文件,将需要绘制直方图的两列数据分别保存到两个列表中
x_data = []
y_data = []
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
x_data.append(row[0])
y_data.append(row[1])
# 使用numpy库的histogram函数统计每个区间的数据个数
x_data = np.array(x_data, dtype=float)
y_data = np.array(y_data, dtype=float)
bins = np.linspace(min(x_data.min(), y_data.min()), max(x_data.max(), y_data.max()), 20)
x_hist, _ = np.histogram(x_data, bins=bins)
y_hist, _ = np.histogram(y_data, bins=bins)
# 使用matplotlib库的bar函数将统计结果绘制成直方图
plt.bar(bins[:-1], x_hist, width=bins[1]-bins[0], alpha=0.5, color='blue')
plt.bar(bins[:-1], y_hist, width=bins[1]-bins[0], alpha=0.5, color='red')
plt.show()
```
其中,`data.csv`文件是包含两列数据的csv文件,示例代码中假设数据都是数字类型。运行代码后,将会生成一个直方图,其中蓝色和红色分别表示两列数据。你可以自己修改颜色、bin的数量等参数,来适应不同的数据。
阅读全文