### 使用 Housing 数据集绘制连续型变量的直方图与箱线图
以下是导入 Housing 数据集并用 Python 绘制连续型变量直方图和箱线图的详细方法。
#### 导入 Housing 数据集
Housing 数据集通常可以通过 `sklearn.datasets` 模块加载。以下代码展示了如何导入该数据集:
```python
from sklearn.datasets import fetch_california_housing
import pandas as pd
# 加载 California Housing 数据集
housing = fetch_california_housing()
df = pd.DataFrame(housing.data, columns=housing.feature_names)
df['MedHouseVal'] = housing.target # 添加目标值列
```
#### 绘制连续型变量的直方图
为了绘制连续型变量的直方图,可以使用 Matplotlib 的 `plt.hist()` 函数[^1]。以下代码以 `MedHouseVal`(房价中位数)为例,展示如何绘制直方图:
```python
import matplotlib.pyplot as plt
# 绘制直方图
plt.figure(figsize=(8, 6))
plt.hist(df['MedHouseVal'], bins=30, edgecolor='black', alpha=0.7)
plt.title('Histogram of Median House Value', fontsize=14)
plt.xlabel('Median House Value', fontsize=12)
plt.ylabel('Frequency', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
```
#### 绘制连续型变量的箱线图
箱线图可以使用 Matplotlib 的 `plt.boxplot()` 函数或 Seaborn 库中的 `sns.boxplot()` 函数绘制[^3]。以下代码展示了如何使用 Seaborn 绘制 `MedHouseVal` 的箱线图:
```python
import seaborn as sns
# 绘制箱线图
plt.figure(figsize=(8, 6))
sns.boxplot(x=df['MedHouseVal'], color='lightblue')
plt.title('Boxplot of Median House Value', fontsize=14)
plt.xlabel('Median House Value', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
```
#### 完整代码示例
以下是一个完整的代码示例,展示如何导入 Housing 数据集并绘制连续型变量的直方图和箱线图:
```python
from sklearn.datasets import fetch_california_housing
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载 California Housing 数据集
housing = fetch_california_housing()
df = pd.DataFrame(housing.data, columns=housing.feature_names)
df['MedHouseVal'] = housing.target # 添加目标值列
# 绘制直方图
plt.figure(figsize=(8, 6))
plt.hist(df['MedHouseVal'], bins=30, edgecolor='black', alpha=0.7)
plt.title('Histogram of Median House Value', fontsize=14)
plt.xlabel('Median House Value', fontsize=12)
plt.ylabel('Frequency', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
# 绘制箱线图
plt.figure(figsize=(8, 6))
sns.boxplot(x=df['MedHouseVal'], color='lightblue')
plt.title('Boxplot of Median House Value', fontsize=14)
plt.xlabel('Median House Value', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
```
#### 注意事项
- 在绘制直方图时,`bins` 参数决定了直方图的分组数量,可以根据数据分布调整该参数。
- 箱线图能够清晰地显示数据的分布特征,包括中位数、四分位数和异常值等信息。
- 如果需要对多个连续型变量进行可视化,可以使用循环或子图功能批量生成图表。