查看sklearn库内置的iris数据集,画以下4个子图: (1)花瓣长度与花萼长度的散点图,不同类别的鸢尾花用不同的点型和颜色区分; (2)绘制花瓣长度分布直方图; (3)绘制花萼长度条形图; (4)绘制花萼长度饼状图。
时间: 2024-10-10 19:14:00 浏览: 74
在Python中,我们可以使用scikit-learn (sklearn) 库中的`load_iris()`函数加载Iris数据集,然后利用matplotlib库进行可视化。以下是指导如何创建这四个子图的步骤:
1. 首先,导入需要的库:
```python
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
```
2. 加载iris数据集并预处理数据:
```python
iris = load_iris()
X = iris.data[:, :2] # 只取花瓣长度和花萼长度作为坐标轴
y = iris.target
```
3. **(1)** 散点图:
```python
plt.figure(figsize=(6, 6))
for i in range(3):
color = f"C{i}"
marker = chr(ord('o') + i)
plt.scatter(X[y == i, 0], X[y == i, 1], label=iris.target_names[i], c=color, marker=marker)
plt.xlabel("Petal Length")
plt.ylabel("Sepal Length")
plt.legend(title="Species")
plt.title("Scatter Plot of Petal Length vs Sepal Length")
plt.show()
```
4. **(2)** 花瓣长度直方图:
```python
plt.figure(figsize=(8, 4))
plt.hist(iris.data[:, 0], bins='auto', alpha=0.5, label=iris.target_names)
plt.xlabel("Petal Length")
plt.ylabel("Frequency")
plt.title("Histogram of Petal Length")
plt.legend()
plt.show()
```
5. **(3)** 花萼长度条形图:
```python
plt.figure(figsize=(8, 4))
plt.bar(range(3), iris.data[:, 2].mean(axis=0), tick_label=iris.target_names, color=['C0', 'C1', 'C2'])
plt.xlabel("Species")
plt.ylabel("Average Sepal Length")
plt.title("Bar Chart of Average Sepal Length by Species")
plt.show()
```
6. **(4)** 花萼长度饼状图:
```python
plt.figure(figsize=(6, 6))
plt.pie(iris.data[:, 2].mean(axis=0), labels=iris.target_names, autopct='%1.1f%%')
plt.title("Pie Chart of Average Sepal Length by Species")
plt.axis('equal') # 保持圆形
plt.show()
```
完成以上代码后,你应该可以看到四个关于Iris数据集的可视化图表。
阅读全文
相关推荐


















