m0_55677094 2023-04-16 22:01 采纳率: 85.7%
浏览 24

matplotlib制作3D曲面图plot_surface时,alpha值的设置问题。

我现在用matplotlib制作3D图(plot_surface)有一行代码如下:
ax.plot_surface(x, y, np_2, rstride=50, cstride=50, cmap='rainbow')
其中,x,y代表网格化,np_2是高度数据(一个数组,数组中的每个值的位置对应于x和y的网格化位置)
我现在并不想让np_2的所有数值都显现出来,能否用到alpha参数,让低于某个阈值的数值alpha值变为0,其余变为1?

另外,在2D图中下面的写法是有用的,但是3D图好像不管用。
alpha_1 = np.where(list_1[1] > backgroud_value, 0.9, 0)
ax.imshow(list_1[1], zorder=2, alpha=alpha_1, clim=(backgroud_value, max_value), cmap='rainbow')

有哪位高人知道吗?多谢赐教!

  • 写回答

2条回答 默认 最新

  • 努力の小熊 2023-04-17 14:56
    关注

    努力の小熊结合ChatGPT的回答:
    可以使用alpha参数来控制3D曲面图的透明度,以达到让低于某个阈值的数值alpha值变为0的效果。具体做法是将np_2中小于阈值的数值设为0,大于等于阈值的数值设为1,然后在plot_surface时设置alpha参数为np_2即可。示例代码如下:

    np_2_alpha = np.where(np_2 < threshold, 0, 1)
    ax.plot_surface(x, y, np_2, rstride=50, cstride=50, cmap='rainbow', alpha=np_2_alpha)
    

    关于2D图中使用imshow函数设置alpha参数的问题,在3D图中不适用是因为imshow函数只能绘制二维图像,而不能指定图像在三维空间中的位置和姿态。在3D曲面图中,应该使用plot_surface函数来呈现数据,同时使用alpha参数来控制透明度。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月16日

悬赏问题

  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含