python渐变色代码_Python 颜色渐变三维平滑曲线 3D plot Color Gradient

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

from scipy.interpolate import interp1d

import numpy as np

# sample points

x = [3, 6, 3, 6, 3, 1]

y = [4, 7, 2, 1, 4, 3]

z = [4, 9, 7, 5, 9, 6]

# 首尾相连

for i in (x, y, z):

i.append(i[0])

print(x)

'''

"""

A value in x_new is above the interpolation

=> the range of interp_i_x must within np.linspace(min(x), max(x), 7)

"""

# interp_i_x = np.linspace(min(x), max(x), 100)

# interp_i_y = np.linspace(min(y), max(y), 100)

# interp_i_z = np.linspace(min(z), max(z), 100)

# xi = interp1d(np.linspace(min(x), max(x), 7), x, kind='quadratic')(interp_i_x)

# yi = interp1d(np.linspace(min(y), max(y), 7), y, kind='quadratic')(interp_i_y)

# zi = interp1d(np.linspace(min(z), max(z), 7), z, kind='quadratic')(interp_i_z)

'''

def interp_helper(values, num=50, kind='quadratic'):

interp_i = np.linspace(min(values), max(values), num)

return interp1d(np.linspace(min(values), max(values), len(values)), values, kind=kind)(interp_i)

x_new, y_new, z_new = (interp_helper(i, 100) for i in (x, y, z))

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

zmax = np.array(z_new).max()

zmin = np.array(z_new).min()

for i in range(len(z_new) - 1):

ax.plot(x_new[i:i + 2], y_new[i:i + 2], z_new[i:i + 2],

color=plt.cm.jet(int((np.array(z_new[i:i + 2]).mean() - zmin) * 255 / (zmax - zmin))))

plt.show()

40355966648a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值