Установите прозрачность (альфа) 3d-сетки matplotlib

#python #matplotlib #plot

Вопрос:

Я хотел бы изменить прозрачность сетки в 3d-графике matplotlib.

Но я нахожу, что это не так просто, как в 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-сеток?


Я пытался:

  1. С помощью ax.zaxis._axinfo['grid'].update({"alpha": 0.1}) . Но, похоже, у него нет ключа alpha .
  2. Я проверил исходный код ax.grid() здесь, на github. Из комментариев следует, что alpha функциональность вообще не реализована для 3d-кейса.

Ответ №1:

plt.grid похоже, он ничего не делает для 3d-графиков. Но вы можете установить цвет как кортеж RGB Альфа с помощью rcparams:

 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()
 

Результат:

введите описание изображения здесь