Domanda

Ho usato il comando di seguito per creare un diagramma a dispersione 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()

Ma il colore dei punti sembra così leggero anche quando ho impostato Alpha su 1. sembrano quasi essere dietro una maschera. Sembra anche dipendente dalla posizione 3D dei singoli SOT. C'è un modo per rendere tutti i punti davvero buio e opaco?

È stato utile?

Soluzione

Questo sembra essere disperso usando un effetto 3D di fantasia in modo da poter distinguere tra punti in primo piano e punti sullo sfondo. Potrebbe essere necessario hackerare MPLOT3D per farlo smettere di farlo.

In alternativa, potresti essere in grado di utilizzare PLAT3D che non mostra questo comportamento.

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

Altri suggerimenti

Con alfa = 0,8 punti già sembrano molto trasparenti. Non usare Alpha.
Inoltre, puoi dare un aspetto più scuro ai tuoi punti disegnando le loro edgeline in un colore più scuro rispetto al rispettivo facce.
Usa il parametro della parola chiave scattering edgecolor/edgecolors o impostare dopo la creazione di dispersione (ad esempio in grassetto tutti i punti con un bordo nero) con myscatterplot.set_edgecolors(color)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top