python贴图_python – 将颜色贴图应用于Matplotlib 3D曲面中的自定义轴

你可以试试这个:

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import numpy as np

X = np.linspace(-np.pi, np.pi, 200, endpoint=True)

Y = np.linspace(-np.pi, np.pi, 200, endpoint=True)

XX, YY = np.meshgrid(X,Y)

Z = np.cos(XX)*np.cos(YY)

fig = plt.figure()

ax1 = plt.subplot2grid((1,2), (0,0), projection='3d')

ax2 = plt.subplot2grid((1,2), (0,1), projection='3d')

surf = ax1.plot_surface(XX, YY, Z,

cmap=plt.cm.Set2)

surf2 = ax2.plot_surface(XX, YY, Z, shade=False,

facecolors=plt.cm.Set2((XX-XX.min())/(XX.max()-XX.min()))

)

在第二个图上,您将facecolors设置为XX的函数,而不是默认情况下的Z.您需要在0和1之间重新缩放XX值,否则色彩图将在0和1之外饱和.您还需要删除使用cmap时删除的阴影(在第一个图中).

然而,由于某些未知的原因,线条消失了.

您可以将它们添加回来:

plt.draw() # you need this to get the edge color

lines = np.array(surf2.get_edgecolor())

surf2.set_edgecolor(lines*np.array([0,0,0,0])+1) # make lines white, and keep alpha==1. It's an array of colors like this: [r,g,b,alpha]

它给:

HTH

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值