当前位置: 首页 > 知识库问答 >
问题:

使用Python和matplotlib控制三维散点图上的alpha值

葛哲彦
2023-03-14

我正在使用函数scatter和mplot3d绘制一个三维散点图。我正在为绘图中的所有点选择单一颜色,但当使用matplotlib绘制时,点的透明度将相对于与摄影机的距离进行设置。有没有办法禁用此功能?

我尝试将alpha-kwarg设置为None/1,并将vmin/vmax设置为1(试图强制颜色缩放为纯色单色),但没有成功。我在散点文档中没有看到与此设置相关的任何其他可能选项。

谢谢

共有3个答案

关冠宇
2023-03-14

如果只想禁用alpha调整,可以覆盖zalpha函数。这将允许您在交互式情节的情况下更新颜色,并且仍然去除深度雾。

from mpl_toolkits.mplot3d import *
import numpy as np
import matplotlib.pyplot as plt
plt.ion()

art3d.zalpha = lambda *args:args[0]

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

x = np.random.sample(20)
y = np.random.sample(20)
z = np.random.sample(20)
s = ax.scatter(x, y, z, c="r")

ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 1)

plt.show()
徐新荣
2023-03-14
ax.scatter(x, y, z, depthshade=0)
杨乐
2023-03-14

对于Matplotlib 1.4,@fraxel下面提供的答案是最好的解决方案:调用ax.scatter,参数为Depthyah=False

没有参数可以控制这一点。这里有一些黑客方法。

禁用set_edgecolorsset_facecolors方法,使mplot3d无法更新颜色的alpha部分:

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

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

x = np.random.sample(20)
y = np.random.sample(20)
z = np.random.sample(20)
s = ax.scatter(x, y, z, c="r")
s.set_edgecolors = s.set_facecolors = lambda *args:None

ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 1)

plt.show()

如果您想稍后调用set_edgecolorsset_facecolors方法,您可以在禁用它们之前备份这两个方法:

s._set_facecolors, s._set_edgecolors = s.set_facecolors, s.set_edgecolors
 类似资料:
  • 我正在探索mpld3库,不知道如何创建三维散点图。使用Matplotlib,我将执行以下操作: 类似地,我尝试使用mpld3(在Jupyter笔记本中):导入matplotlib。mpl_工具包中的pyplot作为plt。mplot3d导入轴3D导入mpld3 我得到了错误 有什么想法吗? 这是完整的错误日志:

  • 我有两个列表,日期和值。我想使用matplotlib绘制它们。下面创建了我的数据散点图。 创建线图。 但我真正想要的是一个散点图,其中的点由一条线连接。 与R中的类似: ,这给了我一个点的散点图,上面有一条连接点的线。 如何在python中实现这一点?

  • 本文向大家介绍python matplotlib绘制三维图的示例,包括了python matplotlib绘制三维图的示例的使用技巧和注意事项,需要的朋友参考一下 作者:catmelo 本文版权归作者所有 链接:https://www.cnblogs.com/catmelo/p/4162101.html 本文参考官方文档:http://matplotlib.org/mpl_toolkits/mpl

  • 散点图用于在水平轴和垂直轴上绘制数据点,它表示了因变量随自变量变化的趋势。通俗地讲,它反映的是一个变量受另一个变量的影响程度。 散点图将序列显示为一组点,其中每个散点值都由该点在图表中的坐标位置表示。对于不同类别的点,则由图表中不同形状或颜色的标记符表示。同时,您也可以设置标记符的颜色或大小。 下面示例,绘制了学生考试成绩的散点图,其中蓝色代表男孩成绩,红色表示女孩的成绩。 代码执行后,输出结果如

  • 本文向大家介绍matplotlib 散点图,包括了matplotlib 散点图的使用技巧和注意事项,需要的朋友参考一下 示例 一个简单的散点图 带有标记点的散点图            

  • 问题内容: 我有两个列表,日期和值。我想使用matplotlib绘制它们。以下创建了我的数据的散点图。 创建一个折线图。 但是我真正想要的是一个散点图,其中的点由一条线连接。 类似于R: ,这使我得到了点的散点图,并用连接点的线覆盖了点。 我该如何在python中做到这一点? 问题答案: 我认为@Evert有正确的答案: 几乎与 或您喜欢的任何 线型 。