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

13

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

Por ejemplo:

un polígono con campo "valor" = 1 debe ser completamente transparente, mientras que el campo con campo "valor" = 0.4 debe tener un valor de transparencia del 40%. El color de los polígonos debería depender de otro campo. Preferiblemente haría esto usando una capa, pero también está bien usar dos capas con algunos modos de fusión.

RutgerH
fuente

Respuestas:

17

Puede usar propiedades definidas por datos para esto. Use 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í puede usar 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 a partir de un campo "transparencia" según su especificación en la pregunta.

En el editor de expresiones encontrará una serie de otras funciones relacionadas con el color que pueden adaptarse mejor a sus necesidades, simplemente explore y lea su documentación directamente en el editor de expresiones.

Otro ejemplo de valores nominales (cualitativos) que normalmente clasificaría es trabajar en el espacio hsv:

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

  • matiz: 0-360 (lo que significa ver a continuación)
  • valor y 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
)

ingrese la descripción de la imagen aquí

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

Matthias Kuhn
fuente
Vea la respuesta relacionada a continuación para QGIS> = 2.12
ndawson
11

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

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

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

ndawson
fuente
1
Enfoque agradable y flexible!
Matthias Kuhn
Esto no parece funcionar en QGIS 3+. Después de agregar esa expresión, todos los polígonos toman un solo color con la misma opacidad.
robroc
3

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

ingrese la descripción de la imagen aquí

Si agrega nuevos valores a la capa utilizada, haga clic en Clasificar para agregarlos a su estilo existente.

Martín
fuente
1
Esto no permitirá usar diferentes campos para transparencia y clasificación como se especifica en la pregunta.
Matthias Kuhn el