用python代码绘制鸢尾花数据集iris的主成分分析图、t-SNE图、热力图、带层次聚类的热力图等高维数据型图表。
时间: 2024-12-30 22:40:52 浏览: 85
在Python中,我们可以使用一些流行的库如`matplotlib`, `seaborn`, `scikit-learn`和`plotly`来绘制鸢尾花数据集(Iris dataset)的各种可视化图表。这里我会简要概述如何创建这些图表:
1. **主成分分析(PCA)图**:
```python
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
iris = load_iris()
pca = PCA(n_components=2) # 取前两个主成分
X_pca = pca.fit_transform(iris.data)
plt.figure(figsize=(8,6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=iris.target)
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.title('Iris PCA plot')
plt.show()
```
2. **t-SNE图**:
```python
from sklearn.manifold import TSNE
import seaborn as sns
sns.set(style="white")
tsne = TSNE(random_state=42)
iris_tsne = tsne.fit_transform(iris.data)
plt.figure(figsize=(8,6))
sns.scatterplot(x=iris_tsne[:, 0], y=iris_tsne[:, 1], hue=iris.target)
plt.title('Iris t-SNE plot')
plt.show()
```
3. **热力图(Heatmap)**:
```python
import seaborn as sns
import numpy as np
correlation_matrix = iris.data.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.title('Iris Correlation Heatmap')
plt.show()
```
4. **带层次聚类的热力图**:
```python
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
linkage_matrix = linkage(iris.data, method='ward')
dendrogram(linkage_matrix, labels=iris.target_names)
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('Sample Index')
plt.ylabel('Distance')
plt.show()
```
以上代码展示了简单的例子,实际应用中可能需要对数据预处理,并调整颜色映射、轴标签等细节。
阅读全文
相关推荐


















