Я использую Axes3D из Matplotlib для создания точечной диаграммы с такими цветами:

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

fig = plt.figure(1)
ax = Axes3D(fig)
ax.scatter(xval, yval, zval, c=cval, cmap=plt.cm.gray)

Это прекрасно работает, но matplotlib автоматически добавляет некоторую штриховку, чтобы более удаленные точки выглядели более прозрачными / более светлыми, чем более близкие точки. Это очень затрудняет визуальное сравнение цветов отдельных точек.

Есть ли способ выключить это?

10
Benno 3 Фев 2013 в 21:01

3 ответа

Лучший ответ

Вам необходимо добавить depthshade=False в качестве аргумента в функцию разброса.

ax.scatter(xval, yval, zval, c=cval, cmap=plt.cm.gray, depthshade=False)

Matplotlib 3D учебник

1
Andrea 15 Ноя 2019 в 15:28

Это на самом деле особенность двумерного графика рассеяния Matplotlib, и здесь есть вопрос с потенциальным решением.

Входы Scatter - это то, что действительно необходимо настроить.

0
Community 23 Май 2017 в 11:43

Просто добавьте alpha = 1 в качестве аргумента в функцию разброса.

ax.scatter(xval, yval, zval, c=cval, alpha = 1, cmap=plt.cm.gray)

0
Bertrand2222 21 Сен 2018 в 08:24