Python数据可视化: 使用Matplotlib创建鸢尾花数据集直方图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
from sklearn.datasets import load_iris
# 步骤 0:数据收集
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target
# 2. 创建直方图 (hist)
# 设置图大小为12x8,2x2的一组子图
# 该组子图包括'sepal length', 'sepal width', 'petal length', 'petal width'属性值的直方图
# 所有子图具有相同的设置:分区数20,颜色'skyblue',透明度参数0.7
# 添加标题分别为'Histogram of Sepal length'、'Histogram of Sepal width'、'Histogram of Petal length'、'Histogram of Petal width'
# x轴分别为'Sepal length (cm)'、'Sepal width (cm)'、'Petal length (cm)'、'Petal width (cm)'
# y轴统一为'Frequency'
#============================= show me your code =======================
# code
plt.figure(figsize=(12, 8))
plt.subplot(2, 2, 1)
plt.hist(df['sepal length (cm)'], bins=20, color='skyblue', alpha=0.7)
plt.title('Histogram of Sepal length')
plt.xlabel('Sepal length (cm)')
plt.ylabel('Frequency')
plt.subplot(2, 2, 2)
plt.hist(df['sepal width (cm)'], bins=20, color='skyblue', alpha=0.7)
plt.title('Histogram of Sepal width')
plt.xlabel('Sepal width (cm)')
plt.ylabel('Frequency')
plt.subplot(2, 2, 3)
plt.hist(df['petal length (cm)'], bins=20, color='skyblue', alpha=0.7)
plt.title('Histogram of Petal length')
plt.xlabel('Petal length (cm)')
plt.ylabel('Frequency')
plt.subplot(2, 2, 4)
plt.hist(df['petal width (cm)'], bins=20, color='skyblue', alpha=0.7)
plt.title('Histogram of Petal width')
plt.xlabel('Petal width (cm)')
plt.ylabel('Frequency')
plt.tight_layout()
plt.show()
以上代码使用Python的Matplotlib库创建了鸢尾花数据集的直方图。
代码解析:
-
导入库: 首先,代码导入了必要的库,包括pandas用于数据处理,numpy用于数值计算,matplotlib.pyplot用于绘图,以及从sklearn.datasets导入load_iris加载鸢尾花数据集。
-
加载数据: 使用
load_iris()函数加载鸢尾花数据集,并将其转换为pandas DataFrame格式,方便后续处理。 -
创建直方图: 使用
plt.figure()创建一个图形对象,并设置图形大小为12x8。然后,使用plt.subplot()函数创建2x2的子图布局。 -
绘制子图: 对于每个子图,使用
plt.hist()函数绘制直方图,分别显示不同属性值的分布情况。设置直方图的分区数为20,颜色为'skyblue',透明度为0.7。 -
设置标题和标签: 使用
plt.title()、plt.xlabel()和plt.ylabel()函数分别设置每个子图的标题、x轴标签和y轴标签。 -
调整布局: 使用
plt.tight_layout()函数自动调整子图之间的间距,避免重叠。 -
显示图形: 最后,使用
plt.show()函数显示绘制的图形。
这段代码清晰地展示了如何使用Matplotlib库创建直方图,对于理解数据分布非常有帮助。通过修改代码中的参数,可以轻松地定制直方图的外观和内容,以满足不同的需求。
原文地址: https://www.cveoy.top/t/topic/RvZ 著作权归作者所有。请勿转载和采集!