Matplotlib 3D Scatter График цвета точек очень светлый - PullRequest
1 голос
/ 06 декабря 2011

Я использовал приведенную ниже команду для создания трехмерного графика рассеяния:

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

sizeseq = 2
colorseq = "k"

fig = plt.figure(1, (5,5), dpi=300)
ax = Axes3D(fig)
ax.view_init(20, -45)

x, y, z = [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10]
ax.scatter(x, y, z, c=colorseq, s=sizeseq, lw=0, alpha=.8)

plt.show()

Но цвет точек выглядит таким светлым, даже когда я устанавливаю альфа на 1. Они выглядят почти как за маской. Это также кажется зависимым от трехмерного положения отдельных соц. Есть ли способ заставить все точки выглядеть очень темными и непрозрачными?

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Похоже, что это рассеивается с использованием причудливого 3D-эффекта, так что вы можете различать точки на переднем плане и точки на заднем плане. Возможно, вам придется взломать mplot3d, чтобы он прекратил это делать.

В качестве альтернативы вы можете использовать plot3D, который не показывает такое поведение.

ax.plot3D(x, y, z, 'k.', alpha=.8)
2 голосов
/ 06 декабря 2011

При альфа = 0,8 точки уже выглядят очень прозрачными. Не используйте альфа.
Кроме того, вы можете придать своим точкам более темный вид, нарисовав их края более темным цветом, чем их соответствующий цвет лица.
Используйте параметр ключевого слова разброса edgecolor / edgecolors или установите после создания разброса (например, чтобы выделить все точки с черной рамкой) с помощью myscatterplot.set_edgecolors(color)

...