QGIS'de bir şekil dosyasındaki çokgen başına saydamlık nasıl ayarlanır?


13

QGIS'de bir şekil dosyasındaki çokgen başına saydamlık nasıl ayarlanır?

Örneğin:

"değer" = 1 alanlı bir çokgen tamamen şeffaf olmalı, "değer" = 0,4 alanlı alan% 40 şeffaflık değerine sahip olmalıdır. Çokgenlerin rengi başka bir alana bağlı olmalıdır. Tercihen bunu bir katman kullanarak yapardım, ancak bazı karıştırma modlarına sahip iki katman kullanmak da tamam.

Yanıtlar:


17

Bunun için veri tanımlı özellikleri kullanabilirsiniz. Katman özelliklerindeki stil sekmesini kullanın ve rengin sağındaki ifade düğmesini tıklayın.

Orada color_rgba( red, green, blue, alpha )rengi oluşturmak için işlevi kullanabilirsiniz . Tüm değerlerin 0 ile 255 arasında olması gerekir.

Misal:

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

Bu, sorudaki spesifikasyonunuza göre "şeffaflık" alanından tanımlanan alfa ile tamamen kırmızı bir stil verecektir.

İfade düzenleyicide, ihtiyaçlarınıza daha uygun olabilecek renkle ilgili bir dizi başka işlev bulacaksınız, bunları keşfedin ve belgelerini doğrudan ifade düzenleyicisinde okuyun.

Normalde sınıflandıracağınız nominal (nitel) değerler için başka bir örnek hsv alanında çalışmaktır:

color_hsva( hue, saturation, value, alpha )Renk oluşturma işlevi vardır . Değerlerin arasında olması gerekir

  • hue: 0-360 (aşağıya bakın)
  • değer ve doygunluk: 0-100
  • alfa: 0-255.

Misal:

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

resim açıklamasını buraya girin

QGIS> = 2.12 için @ndawsons cevabını da dikkate alın.


QGIS için ilgili cevaba bakınız> = 2.12
ndawson

12

Matthias'ın cevabının bir takibi olarak, QGIS> = 2.12'de ifade ile veri tanımlı bir dolgu rengi kullanabilirsiniz:

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

Bu ifadenin yaptığı şey orijinal çokgen rengini (@değeri) alır ve alfa kanalını (opaklık) alandan hesaplanan değerle değiştirir. Bu, dolgu rengi ifadesini ayarlayabileceğiniz ve daha sonra mutlu bir şekilde devam edebileceğiniz ve temel dolgu rengini otomatik olarak ayarlamak için kategorize veya dereceli oluşturucular kullanabileceğiniz anlamına gelir ve opaklık kuralına hala uyulur. RGB değerlerini bu şekilde kodlamaya gerek yok!


1
Güzel ve esnek bir yaklaşım!
Matthias Kuhn

Bu QGIS 3 + 'da işe yaramıyor gibi görünüyor. Bu ifadeyi ekledikten sonra, tüm çokgenler aynı opaklığa sahip tek bir renk alır.
robroc

3

Bu değerleri katmanın Katman Özellikleri'nde de ayarlayabilirsiniz (sağ tıklayın -> Özellikler).
Stil -> Kategorilere Ayır'ı kullanın, ardından kullanmak istediğiniz sütunu seçin, örneğin 'değer', renk rampasındaki renkleri seçin ve 'Sınıflandır'ı tıklayın.
Daha sonra her bir değerin rengini ve saydamlığını tanımlayabilirsiniz.

resim açıklamasını buraya girin

Kullanılan katmana yeni değerler eklerseniz, mevcut stilinize eklemek için Sınıflandır'ı tıklayın.


1
Bu, soruda belirtildiği gibi şeffaflık ve sınıflandırma için farklı alanların kullanılmasına izin vermeyecektir.
Matthias Kuhn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.