Pregunta

Usé el comando a continuación para crear una trama de dispersión 3D:

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

Pero el color de los puntos se ve tan ligero incluso cuando pongo alfa en 1. Casi parecen estar detrás de una máscara. También parece dependiente de la posición 3D de los SOT individuales. ¿Hay alguna manera de hacer que todos los puntos se vean realmente oscuros y opacos?

¿Fue útil?

Solución

Esto parece estar disperso usando un efecto 3D elegante para que pueda distinguir entre puntos en primer plano y puntos en el fondo. Es posible que tengas que hackear mplot3d para que deje de hacerlo.

Alternativamente, es posible que pueda usar Plot3D, que no muestra este comportamiento.

ax.plot3D(x, y, z, 'k.', alpha=.8)

Otros consejos

Con alfa = 0.8 puntos ya se ven muy transparentes. No uses alfa.
Además, puede dar un aspecto más oscuro a sus puntos dibujando sus edificios en un color más oscuro que su respectivo facecolor.
Utilice el parámetro de palabras clave de dispersión edgecolor/edgecolors o establecido después de la creación de dispersión (por ejemplo, en negrita todos los puntos con un borde negro) con myscatterplot.set_edgecolors(color)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top