#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-сеток?
Я пытался:
- С помощью
ax.zaxis._axinfo['grid'].update({"alpha": 0.1})
. Но, похоже, у него нет ключаalpha
. - Я проверил исходный код
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()
Результат: