如何在 matplotlib 中绘制 3D 图,其中仅使用一个变量评估两个函数?

How to do a 3D plot in matplotlib where two functions are evaluated with only one variable?

我找到的所有 3D 绘图示例都是 X,Y = data 的形式,f(X,Y) 是绘图函数。我需要的是一个 3D 图,其中 X 包含数据点,而 Y = f(X) 和 Z = g(X) 显示在各自的轴上。有办法吗?

IIUC,您可以在 DataFarme 上设置 x_points,然后在 DataFrame 上应用 function_yfunction_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()

输出: