# 将数组转换为 DataFrame df2 = pd.DataFrame(ytest, columns=['C']) df1 = pd.DataFrame(test_predicted, columns=['C']) # 合并DataFrame result = pd.concat([df1, df2], axis=1) from mpl_toolkits.mplot3d import Axes3D # 创建图形 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制预测值和真实值的空间曲面 ax.scatter(X_reduced[:, 0], X_reduced[:, 1], result['df1'], c='r', label='df1') ax.scatter(X_reduced[:, 0], X_reduced[:, 1], result['df2'], c='b', label='df2') # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Value') # 添加图例 ax.legend() # 显示图形 plt.show()
时间: 2024-01-12 17:05:22 浏览: 76
python pandas.DataFrame.loc函数使用详解
你的代码中出现了一些问题。根据你的代码,我假设`X_reduced`是经过降维后的二维特征,`result`是合并了预测值和真实值的DataFrame。
以下是对你的代码进行修正的部分:
```python
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
# 创建图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制预测值和真实值的空间曲面
ax.scatter(X_reduced[:, 0], X_reduced[:, 1], result['C_x'], c='r', label='df1')
ax.scatter(X_reduced[:, 0], X_reduced[:, 1], result['C_y'], c='b', label='df2')
# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Value')
# 添加图例
ax.legend()
# 显示图形
plt.show()
```
修改后的代码中,`result['df1']`和`result['df2']`被修改为`result['C_x']`和`result['C_y']`,以匹配DataFrame中的列名。同时,你需要确保`X_reduced`、`result['C_x']`和`result['C_y']`具有相同的长度。
请注意,这只是一个示例代码,你需要根据你的具体数据和需求进行适当调整。希望这对你有所帮助!
阅读全文