15 votos

¿Cómo establecer la transparencia por polígono en un shapefile en QGIS?

¿Cómo establecer la transparencia por polígono en un shapefile en QGIS?

Por ejemplo:

un polígono con el campo "valor" = 1 debería ser totalmente transparente mientras que el campo con el campo "valor" = 0,4 debería tener un valor de transparencia del 40%. El color de los polígonos debería depender de otro campo. Es preferible hacer esto usando una capa, pero usar dos capas con algunos modos de mezcla también está bien.

17voto

Michael Puntos 11

Para ello puede utilizar las propiedades definidas por los datos. Utilice la pestaña de estilo en las propiedades de la capa y haga clic en el botón de expresión a la derecha del color.

Allí puedes utilizar la función color_rgba( red, green, blue, alpha ) para crear el color. Todos los valores deben estar entre 0 y 255.

Ejemplo:

color_rgba( 255, 0, 0, ( 1 - "transparency" ) * 255 )

Esto le dará un estilo totalmente rojo con el alfa definido desde un campo "transparencia" según su especificación en la pregunta.

En el editor de expresiones encontrarás otras funciones relacionadas con el color que pueden adaptarse mejor a tus necesidades, sólo tienes que explorarlas y leer su documentación directamente en el editor de expresiones.

Otro ejemplo para los valores nominales (cualitativos) que normalmente se clasifican es trabajar en el espacio hsv:

Existe la función color_hsva( hue, saturation, value, alpha ) para crear el color. Los valores deben estar entre

  • matiz: 0-360 (significado ver abajo)
  • y la saturación: 0-100
  • alfa: 0-255.

Ejemplo:

color_hsva( 
  CASE 
    WHEN "classification" = 'red' THEN 0
    WHEN "classification" = 'blue' THEN 240
  END CASE, -- hue
  80,  -- saturation
  80,  -- value
  ( 1 - "transparency" ) * 255  -- alpha
)

enter image description here

Para QGIS >= 2.12 considere también la respuesta de @ndawsons.

0 votos

Vea la respuesta relacionada más abajo para QGIS >= 2.12

16voto

John Feminella Puntos 123

Como seguimiento a la respuesta de Matthias, en QGIS >= 2.12 se puede utilizar un color de relleno definido por los datos con la expresión:

 set_color_part(@value, 'alpha', ( 1 - "transparency" ) * 255 )

Lo que hace esta expresión es tomar el color original del polígono (@valor) , y reemplazar el canal alfa (opacidad) con el valor calculado del campo). Esto significa que puede establecer la expresión del color de relleno y luego seguir adelante y utilizar los renderizadores categorizados o graduados para establecer automáticamente el color de relleno base y la regla de opacidad seguirá siendo respetada. No es necesario codificar los valores rgb de esta manera.

1 votos

Un enfoque agradable y flexible.

0 votos

Esto no parece funcionar en QGIS 3+. Después de añadir esa expresión, todos los polígonos toman un solo color con la misma opacidad.

0 votos

Funciona bien con QGIS 3.14. El editor de expresiones fue un poco difícil de encontrar. Haga clic derecho en la capa / Propiedades / Simbología / Haga clic en Símbolo .. Cambiar / Haga clic en Relleno simple / Haga clic en el botón de expresión a la derecha de "Color de relleno" / Editar... / debería abrir el constructor de cadenas de expresión

3voto

Ilya Ryzhenkov Puntos 5731

También puede establecer estos valores en las Propiedades de la capa (clic derecho -> Propiedades).
Utilice Estilo -> Categorizado y luego seleccione la columna que desea utilizar, por ejemplo 'valor', elija los colores en la rampa de colores y haga clic en 'Clasificar'.
A continuación, puede definir el color de cada valor y su transparencia.

enter image description here

Si añade nuevos valores a la capa utilizada, haga clic en Clasificar para añadirlos al estilo existente.

2 votos

Esto no permitirá utilizar diferentes campos para la transparencia y la clasificación como se especifica en la pregunta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X