¿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 el campo "valor" = 1 debe ser completamente transparente, mientras que el campo con el campo "valor" = 0.4 debe tener un valor de transparencia del 40%. El color de los polígonos debe depender de otro campo. Preferiblemente, lo haría usando una capa, pero también está bien usar dos capas con algunos modos de fusión.

    
pregunta RutgerH 09.10.2015 - 11:39

3 respuestas

17

Puedes 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 en un campo "transparencia" según su especificación en la pregunta.

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

Otro ejemplo de los valores nominales (cualitativos) que normalmente clasificaría 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

  • tono: 0-360 (es decir, ver más abajo)
  • 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
)

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

    
respondido por el Matthias Kuhn 09.10.2015 - 12:20
11

Como seguimiento a la respuesta de Matthias, en QGIS > = 2.12 puede usar un color de relleno definido con 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 (@valor) y reemplaza el canal alfa (opacidad) con el valor calculado desde el campo). Esto significa que puede configurar la expresión de color de relleno y luego continuar y usar generadores categorizados o graduados para establecer automáticamente el color de relleno de base y la regla de opacidad se seguirá respetando. ¡No hay necesidad de codificar los valores rgb de esta manera!

    
respondido por el ndawson 09.10.2015 - 23:39
3

También puede establecer estos valores en las Propiedades de capa de la capa (haga clic con el botón derecho - > Propiedades).
Usar 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'. A continuación, puede definir el color de cada valor y su transparencia.

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

    
respondido por el Martin 09.10.2015 - 12:30

Lea otras preguntas en las etiquetas