编写python代码利用pandas库和matplotlib库和numpy库实现直方图、散点图、盒图、分位数图、Q-Q图对鸢尾花数据分布的可视化描述
时间: 2024-06-10 07:08:25 浏览: 160
鸢尾花的处理,使用Python 的pandans库
好的,这是一个关于数据分析的问题,下面是我对鸢尾花数据分布进行可视化描述的代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取鸢尾花数据集
iris_data = pd.read_csv("iris.csv")
# 直方图
plt.hist(iris_data["sepal_length"], bins=10)
plt.xlabel("Sepal Length")
plt.ylabel("Frequency")
plt.title("Histogram of Sepal Length")
plt.show()
# 散点图
plt.scatter(iris_data["sepal_length"], iris_data["sepal_width"])
plt.xlabel("Sepal Length")
plt.ylabel("Sepal Width")
plt.title("Scatter Plot of Sepal Length and Width")
plt.show()
# 盒图
plt.boxplot([iris_data["sepal_length"], iris_data["sepal_width"], iris_data["petal_length"], iris_data["petal_width"]])
plt.xticks([1, 2, 3, 4], ["Sepal Length", "Sepal Width", "Petal Length", "Petal Width"])
plt.ylabel("Value")
plt.title("Boxplot of Iris Data")
plt.show()
# 分位数图
plt.figure(figsize=(8, 6))
for i, col in enumerate(["sepal_length", "sepal_width", "petal_length", "petal_width"]):
plt.subplot(2, 2, i+1)
plt.plot(np.arange(0, 1, 0.01), np.percentile(iris_data[col], np.arange(0, 1, 0.01)))
plt.xlabel("Percentile")
plt.ylabel("Value")
plt.title(col)
plt.tight_layout()
plt.show()
# Q-Q图
plt.figure(figsize=(8, 6))
for i, col in enumerate(["sepal_length", "sepal_width", "petal_length", "petal_width"]):
plt.subplot(2, 2, i+1)
plt.plot(np.sort(iris_data[col]), np.sort(np.random.normal(0, 1, iris_data.shape[0])))
plt.xlabel("Value")
plt.ylabel("Theoretical Quantiles")
plt.title(col)
plt.tight_layout()
plt.show()
```
这是一个比较全面的数据可视化方案,可以清晰地展示鸢尾花数据的分布情况。
阅读全文