Come impostare la trasparenza per poligono in uno shapefile in QGIS?


13

Come impostare la trasparenza per poligono in uno shapefile in QGIS?

Per esempio:

un poligono con campo "valore" = 1 dovrebbe essere completamente trasparente, mentre il campo con campo "valore" = 0,4 dovrebbe avere un valore di trasparenza del 40%. Il colore dei poligoni dovrebbe dipendere da un altro campo. Preferibilmente lo farei usando un solo livello, ma anche usare due livelli con alcune modalità di fusione va bene.

Risposte:


17

È possibile utilizzare le proprietà definite dai dati per questo. Usa la scheda dello stile nelle proprietà del livello e fai clic sul pulsante di espressione a destra del colore.

Lì puoi usare la funzione color_rgba( red, green, blue, alpha )per creare il colore. Tutti i valori devono essere compresi tra 0 e 255.

Esempio:

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

Questo ti darà uno stile totalmente rosso con l'alfa definita da un campo "trasparenza" secondo le tue specifiche nella domanda.

Nell'editor delle espressioni troverai una serie di altre funzioni relative al colore che potrebbero soddisfare meglio le tue esigenze, basta esplorarle e leggere la loro documentazione direttamente nell'editor delle espressioni.

Un altro esempio di valori nominali (qualitativi) che normalmente classificheresti è quello di lavorare nello spazio hsv:

C'è la funzione color_hsva( hue, saturation, value, alpha )per creare il colore. I valori devono essere tra

  • tonalità: 0-360 (significato vedi sotto)
  • valore e saturazione: 0-100
  • alfa: 0-255.

Esempio:

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

inserisci qui la descrizione dell'immagine

Per QGIS> = 2.12 considera anche la risposta di @ndawsons.


Vedi la risposta correlata di seguito per QGIS> = 2.12
ndawson,

11

Come seguito alla risposta di Matthias, in QGIS> = 2.12 puoi usare un colore di riempimento definito dai dati con l'espressione:

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

Ciò che fa questa espressione è prendere il colore poligonale originale (@value) e sostituisce il canale alfa (opacità) con il valore calcolato dal campo). Ciò significa che puoi impostare l'espressione del colore di riempimento e quindi andare avanti felicemente e utilizzare i renderer classificati o graduati per impostare automaticamente il colore di riempimento di base e la regola dell'opacità sarà comunque rispettata. Non è necessario codificare i valori rgb in questo modo!


1
Approccio piacevole e flessibile!
Matthias Kuhn,

Questo non sembra funzionare in QGIS 3+. Dopo aver aggiunto quell'espressione, tutti i poligoni assumono un unico colore con la stessa opacità.
robroc

3

Puoi anche impostare questi valori nelle Proprietà del livello del livello (clic con il tasto destro -> Proprietà).
Usa stile -> Classificato, quindi seleziona la colonna che desideri utilizzare, ad esempio "valore", scegli i colori nella scala colori e fai clic su "Clasify".
Quindi è possibile definire il colore di ciascun valore e la sua trasparenza.

inserisci qui la descrizione dell'immagine

Se aggiungi nuovi valori al livello utilizzato, fai clic su Clasify per aggiungerli al tuo stile esistente.


1
Ciò non consentirà l'utilizzo di campi diversi per la trasparenza e la classificazione come specificato nella domanda.
Matthias Kuhn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.