首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib: 3d投影中的zorder不工作

Matplotlib: 3d投影中的zorder不工作
EN

Stack Overflow用户
提问于 2022-11-10 08:17:37
回答 1查看 35关注 0票数 1

我正在用matplotlib绘制3d图,并试图用属性"zorder“更改一些散乱者的顺序。具有最高zorder的对象应该放在顶部,但失败了。这是我的代码:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(projection= '3d')

coorx = [1,2,3,4]
coory = [1,1,1,1]
coorz = [1,1,1,1]

for i in range(4):
    ax.scatter(coorx[i], coory[i], coorz[i], s = coorx[i]*40, alpha = 1, c = 'orange', zorder = 1)
    ax.scatter(coorx[i], coory[i], coorz[i], s = 2, alpha = 1, c = 'white', zorder = 0)

plt.show()

其结果是:

如代码所示,我用较高的zorder指定了橙色点,但它们实际上低于白色点。

我在互联网上搜索并阅读了这份文件,但它们没有多大帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-11-10 08:39:08

有意思的。我不知道为什么,但是zorder在使用ax.plot而不是ax.scatter调用时似乎行为正常,如下所示:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(projection= '3d')

coorx = [1,2,3,4]
coory = [1,1,1,1]
coorz = [1,1,1,1]


ax.plot(coorx, coory, coorz, markersize = 10, marker = 'o', alpha = 1, c = 'orange', zorder = 1, linestyle = '')
ax.plot(coorx, coory, coorz, markersize = 1, marker = 'o', alpha = 1, c = 'white', zorder = 0, linestyle = '')

plt.show()

它产生:

变到

代码语言:javascript
运行
复制
ax.plot(coorx, coory, coorz, markersize = 10, marker = 'o', alpha = 1, c = 'orange', zorder = 0, linestyle = '')
ax.plot(coorx, coory, coorz, markersize = 1, marker = 'o', alpha = 1, c = 'white', zorder = 1, linestyle = '')

收益率

我的猜测是,scatter不知道如何处理zorder,但plot知道--但这完全是猜测。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74385967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档