【问题标题】:How to do a 3D plot in matplotlib where two functions are evaluated with only one variable?如何在 matplotlib 中做一个 3D 绘图,其中两个函数只用一个变量进行评估?
【发布时间】: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


    【解决方案1】:

    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()
    

    输出:

    【讨论】:

    • 我还可以将图形投影添加到 XZ 或 XY 平面吗?如果是这样,我如何将该投影整合到图表中?
    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 2021-07-31
    • 2020-11-23
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多