【发布时间】:2021-12-20 02:54:55
【问题描述】:
我找到的所有 3D 绘图示例都是 X,Y = data 的形式,f(X,Y) 是绘图函数。我需要的是一个 3D 图,其中 X 包含数据点,而 Y = f(X) 和 Z = g(X) 显示在各自的轴上。有办法吗?
【问题讨论】:
标签: python pandas dataframe matplotlib 3d
我找到的所有 3D 绘图示例都是 X,Y = data 的形式,f(X,Y) 是绘图函数。我需要的是一个 3D 图,其中 X 包含数据点,而 Y = f(X) 和 Z = g(X) 显示在各自的轴上。有办法吗?
【问题讨论】:
标签: python pandas dataframe matplotlib 3d
IIUC,您可以在DataFarme 上设置x_points,然后在DataFrame 上应用function_y 和function_z,然后绘制点如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def create_Y(x):
return x**2 + 2*x - 10
def create_Z(x):
return np.sin(x)
df = pd.DataFrame({'X': np.linspace(0.0, 3.0, num=500)})
df['Y'] = df['X'].apply(create_Y)
df['Z'] = df['X'].apply(create_Z)
fig = plt.figure(figsize=(12,7))
ax = fig.add_subplot(projection = '3d')
ax.plot(xs = df['X'], ys = df['Y'],zs = df['Z'])
plt.show()
输出:
【讨论】: