python - Python:将熊猫 3d 数据帧转换为 X、Y、Z
问题描述
我的 csv 数据由pd.read_csv
(https://www.pkks.de/contourN.dat)读取:
0 1 2
0 -3.0 -3.00000 -0.001395
1 -3.0 -2.97647 -0.001410
2 -3.0 -2.95294 -0.001421
3 -3.0 -2.92941 -0.001426
4 -3.0 -2.90588 -0.001427
... ... ... ...
65531 3.0 2.90588 -0.001427
65532 3.0 2.92941 -0.001426
65533 3.0 2.95294 -0.001421
65534 3.0 2.97647 -0.001410
65535 3.0 3.00000 -0.001395
表示 (x,y,z) 坐标。我必须如何将这些数据转换为X, Y, Z
变量以使用 matplotlib 绘制曲面:
ax.plot_surface(X, Y, Z, ...)
解决方案
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = pd.read_csv('your_file.csv', sep=',', names=['X', 'Y', 'Z'], index_col=False)
x_num = len(data['X'].unique())
y_num = len(data['Y'].unique())
x = data['X'].values.reshape(x_num, -1)
y = data['Y'].values.reshape(y_num, -1)
z = data['Z'].values.reshape((x_num, y_num))
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(x, y, z)
推荐阅读
- c++ - Zobrist 转置表中的碰撞
- leaflet - 如何根据用户生成的表动态调整符号系统
- r - 如何从 R 代码中找到代数表达式?
- python - 如何在 pandas DataFrame.to_sql() 调用期间防止 SHOW FULL TABLES 查询
- c# - 如何使用 C# 检查 LocalSystem 帐户是否具有对特定本地目录的读/写权限?
- javascript - 仅获取 JavaScript 中对象数组中的特定值
- javascript - 尝试连接 Sendgrid API 时出错
- sql - 将列转换为行并在不同表中求和查询
- reactjs - 配置 Jsx-control-statement codesandbox.io
- swift - 三个按钮使用一个图像选择器,图像不更新