puntos para paleta linewidth linea grosor graphs graficas graficar commands comando colores color graphics matlab

graphics - para - plot matlab 3d



¿Cómo configuro una navegación en un color(sin gradiente) en mi diagrama de matlab? (4)

La forma más fácil de crear una superficie que tiene solo 1 color y un valor de transparencia determinado es establecer las propiedades ''FaceColor'' y ''FaceAlpha'' del objeto de superficie:

hSurface = surf(...your arguments to create the surface object...); set(hSurface,''FaceColor'',[1 0 0],''FaceAlpha'',0.5);

Este ejemplo establece que el color de la superficie sea rojo y la transparencia a 0.5. También puede establecer las propiedades de borde también (con ''EdgeColor'' y ''EdgeAlpha'').

Mi conjunto de datos consta de tres vectores (x, y y z). Trazar estos valores como puntos en un 3d-plot con plot3 (x, y, z), que está bien. También quiero mostrar un avión en la misma parcela. Para obtener los datos de esta gráfica, uso la regresión lineal en xey para obtener una nueva z.

Así es como se ve:

Quiero que las olas se llenen con un solo color (por ejemplo, azul claro o gris) y establecer la opacidad, para que sea transparente. ¿Cómo puedo hacer esto?


No está claro para mí lo que quieres hacer. Cuando dices un color para el surf, ¿te refieres exactamente a un color, o quieres decir que quieres tonos de gris?

Aquí hay un código que hará una variedad de cosas, puede elegir qué líneas usar:

x = rand(1,20); y = rand(1,20); z = rand(1,20); [X,Y] = meshgrid(linspace(0,1,10),linspace(0,1,10)); Z = rand(10)*0.1; clf plot3(x,y,z,''.''); hold on h = surf(X,Y,Z) hold off %% This will change the color colormap(copper) %% This will remove colordata set(h, ''cdata'',zeros(10)) %% This will make transparent alpha(0.5)


Completando la respuesta de gnovice, es posible que se requiera un ingrediente adicional en el set(hsurface...) (Matlab R2010b 64):

hSurface = surf(...your arguments to create the surface object...); set(hSurface, ''FaceColor'',[1 0 0], ''FaceAlpha'',0.5, ''EdgeAlpha'', 0);

para hacer invisibles los bordes punto a punto de la superficie trazada


@ matlabDoug tiene lo que necesita, creo. La propiedad cdata contiene datos de color que le asignan un mapa de color. Establecerlo en una matriz del mismo tamaño que los datos de su superficie, con cada elemento en esa matriz con el mismo valor, hará que su superficie sea de un solo color. Con el mapa de colores predeterminado, al poner todo en cdata en cero, su superficie se volverá azul, y al establecer todo en 1, la superficie se volverá roja. Entonces puedes jugar con el alfa para hacerlo transparente.