我需要表面绘制一个系数(5)随时间变化的函数。我将这些系数保存在数据框(名为“ c”)中,日期作为列标题...
因此,我的X轴应由0到16之间的数字组成,从1跳到一个np.arange(0,16,1)
我的Y轴是我的约会日期,
最后我的Z轴应该是我的函数的结果:
(c[0])+ (c[1]*((1- exp(-x/c[4]))/(x/c[4])))+ (c[2]*((((1-exp(-x/c[4]))/(x/c[4])))- (exp(-x/c[4]))))+ (c[3]*((((1-exp(-x/c[5]))/(x/c[5])))- (exp(-x/c[5]))))
我尝试将数据转换为纵向数据(而不是使用函数系数,而是使用保存在数据帧c
中每个标头下的结果)数据,并使用:
ax.plot_trisurf(df['X'], df['Y'], df['Z'], linewidth=0.1)
这看起来不错,但是我需要在值之间进行颜色区分,但是我做得不好。
我也尝试使用:
ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, antialiased=False)
但是我不能正确获得函数的动态部分,因此,我使用meshgrid
定义的Z是静态的。
此致