QGISのシェープファイルでポリゴンごとに透明度を設定する方法は?


13

QGISのシェープファイルでポリゴンごとに透明度を設定する方法は?

例えば:

フィールド "値" = 1のポリゴンは完全に透明である必要がありますが、フィールド "値" = 0.4のフィールドは40%の透明度値を持っている必要があります。ポリゴンの色は別のフィールドに依存する必要があります。できれば1つのレイヤーを使用してこれを行いますが、いくつかのブレンドモードで2つのレイヤーを使用しても問題ありません。

回答:


17

これにはデータ定義のプロパティを使用できます。レイヤープロパティの[スタイル]タブを使用し、色の右側にある式ボタンをクリックします。

そこで関数color_rgba( red, green, blue, alpha )を使用して色を作成できます。すべての値は0〜255の間である必要があります。

例:

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

これにより、質問の仕様に従って、フィールド「transparency」から定義されたアルファを持つ完全に赤いスタイルが得られます。

式エディターには、ニーズに合った他の色関連の関数がいくつかあります。それらを調べて、式エディターで直接ドキュメントを読んでください。

通常分類する名目上の(定性的な)値の別の例は、hsv空間で作業することです:

color_hsva( hue, saturation, value, alpha )色を作成する機能があります。値は次の間にある必要があります

  • 色相:0-360(以下を参照)
  • 値と彩度:0-100
  • アルファ:0-255。

例:

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

ここに画像の説明を入力してください

QGIS> = 2.12の場合は、@ ndawsonsの回答も考慮してください。


QGIS 2.12以降については、以下の関連する回答を参照してください
-ndawson

11

Matthiasの回答のフォローアップとして、QGIS> = 2.12では、式でデータ定義の塗りつぶし色を使用できます。

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

この式は、元のポリゴンの色(@value)を取得し、アルファチャネル(不透明度)をフィールドから計算された値に置き換えます)。これは、塗りつぶしの色の表現を設定し、分類されたまたは段階的なレンダラーを使用して基本塗りつぶしの色を自動的に設定し、不透明度ルールが引き続き順守されることを意味します。この方法でrgb値をハードコーディングする必要はありません!


1
素敵で柔軟なアプローチ!
マティアスクーン

これはQGIS 3+では機能しないようです。その表現を追加すると、すべてのポリゴンが同じ不透明度で単一の色になります。
ロブロック

3

レイヤーのレイヤープロパティでこの値を設定することもできます(右クリック->プロパティ)。
[スタイル]-> [分類]を使用してから、使用する列(「値」など)を選択し、カラーランプの色を選択して[分類]をクリックします。
次に、各値の色とその透明度を定義できます。

ここに画像の説明を入力してください

使用したレイヤーに新しい値を追加する場合は、Clasifyをクリックして既存のスタイルに追加します。


1
これにより、質問で指定されているような透明性と分類に異なるフィールドを使用することはできません。
マティアスクーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.