现有数据集winequality-white.csv 使用numpy、pandas和matplotlib库对其进行处理分析和可视化,具体任务如下:除“quality”列外的12列的直方图可视化 1. 对除“quality”列外的剩余12列数据进行直方图可视化:针对每一列,绘制一个直方图,并将这12个直方图放置在同一张图表中。要求12个直方图按3行4列的排布方式展示在图表中,每个直方图的标题为对应列的名称。 2. 调整直方图的参数,包括颜色、透明度、边框等,以保证可读性和美观度。 3. 保存直方图至本地。以上题目要求对任务编写函数来实现
时间: 2024-02-12 12:05:34 浏览: 143
好的,这个任务可以分为以下几个步骤:
1. 导入所需库
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
```
2. 加载数据集
```python
df = pd.read_csv('winequality-white.csv', delimiter=';')
```
3. 定义函数,实现12个直方图的绘制和保存
```python
def plot_hist(df):
# 获取所有特征列名
feature_names = df.columns[:-1]
# 按3行4列的排布方式展示
fig, axs = plt.subplots(nrows=3, ncols=4, figsize=(20, 15))
# 遍历所有特征列
for i, feature_name in enumerate(feature_names):
# 计算直方图的参数
n, bins, patches = axs.flatten()[i].hist(df[feature_name], bins=50, alpha=0.7, color='steelblue', edgecolor='black', linewidth=1.5)
# 设置直方图的标题、坐标轴标签和刻度
axs.flatten()[i].set_title(feature_name, fontsize=20)
axs.flatten()[i].set_xlabel(feature_name, fontsize=15)
axs.flatten()[i].set_ylabel('Count', fontsize=15)
axs.flatten()[i].tick_params(axis='both', labelsize=12)
# 设置直方图的边框
for patch in patches:
patch.set_linewidth(1.5)
patch.set_edgecolor('black')
# 紧凑布局
plt.tight_layout()
# 保存直方图
plt.savefig('hist.png')
# 显示直方图
plt.show()
```
4. 调用函数,绘制和保存直方图
```python
plot_hist(df)
```
绘制出的直方图如下所示:
![hist](hist.png)
阅读全文