修改坐标轴数据,Y轴最大值为0.75,最小值为-0.75。X轴最大值为1.5,最小值为-1.5。让两条曲线落在该范围之间
时间: 2024-10-24 08:06:48 浏览: 39
VS自带Chart控件——设置x轴为时间,并使用滚动条显示
4星 · 用户满意度95%
为了使降维后的数据点落在指定的坐标轴范围内,可以通过调整数据的缩放比例来实现。具体步骤如下:
### 修改坐标轴数据
1. **导入所需库**:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.decomposition import PCA
```
2. **生成训练集**:
```python
x, y = make_moons(n_samples=100, random_state=233)
```
3. **应用PCA降维**:
```python
pca = PCA(n_components=1)
x_pca = pca.fit_transform(x)
```
4. **缩放数据**:
- 计算当前数据的范围
- 将数据缩放到指定的范围内
```python
# 当前数据的范围
min_val = np.min(x_pca)
max_val = np.max(x_pca)
# 指定的新范围
new_min_y = -0.75
new_max_y = 0.75
new_min_x = -1.5
new_max_x = 1.5
# 缩放数据
scaled_x_pca = (x_pca - min_val) / (max_val - min_val) * (new_max_y - new_min_y) + new_min_y
```
5. **绘制降维后的效果**:
```python
plt.figure(figsize=(8, 6))
plt.scatter(scaled_x_pca, np.zeros_like(scaled_x_pca), c=y, cmap='viridis')
plt.xlim(new_min_x, new_max_x)
plt.ylim(new_min_y, new_max_y)
plt.xlabel('Principal Component 1')
plt.ylabel(' ')
plt.title('PCA of Moons Dataset')
plt.grid(True)
plt.show()
```
### 解释
- **生成训练集**:使用 `make_moons` 函数生成月牙形数据集。
- **应用PCA降维**:将二维数据降维成一维。
- **缩放数据**:计算当前数据的最小值和最大值,并将其缩放到指定的新范围内。
- **绘制降维后的效果**:使用 `scatter` 绘制降维后的数据点,并设置坐标轴的范围。
这样,降维后的数据点将会落在指定的坐标轴范围内。
阅读全文