我想更改 matplotlib 3d 图中网格的透明度。
但我发现它不像 2d 那样容易,简单来说就是 plt.grid(alpha=0.2)
。
这里我给出一个迷你代码
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randn(3, 100)
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.scatter(data[0], data[1], data[2])
# How to change the grid transparency?
plt.show()
如何设置x、y、z网格的透明度?
我已经尝试过:
使用
ax.zaxis._axinfo['grid'].update({"alpha": 0.1})
。但它似乎没有 keyalpha
。我在这里查看了
ax.grid()
的源代码in github 。从评论来看,似乎alpha
功能根本没有针对 3d 案例实现。
最佳答案
plt.grid
似乎对 3d 绘图没有任何作用。但是您可以使用 rcparams 将颜色设置为 RGB+Alpha 元组:
import numpy as np
import matplotlib.pyplot as plt
# fourth parameter is alpha=0.1
plt.rcParams['grid.color'] = (0.5, 0.5, 0.5, 0.1)
data = np.random.randn(3, 100)
fig = plt.figure()
ax = plt.axes(projection ="3d")
ax.scatter(data[0], data[1], data[2])
plt.show()
结果:
关于python - 设置 matplotlib 3d 网格的透明度(alpha),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67545542/