如何在QGIS中的shapefile中为每个多边形设置透明度?


13

如何在QGIS中的shapefile中为每个多边形设置透明度?

例如:

字段“值” = 1的多边形应完全透明,而字段“值” = 0.4的字段应具有40%的透明度。多边形的颜色应取决于另一个字段。最好我使用一层,但是使用具有某些混合模式的两层也是可以的。

Answers:


17

您可以为此使用数据定义的属性。使用图层属性上的样式选项卡,然后单击颜色右侧的表达式按钮。

您可以在其中使用该功能color_rgba( red, green, blue, alpha )创建颜色。所有值必须在0到255之间。

例:

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

这将为您提供完全红色的样式,并根据问题中的说明从字段“透明度”中定义Alpha。

在表达式编辑器中,您会发现许多其他与颜色相关的功能,它们可能更适合您的需求,只需浏览它们并直接在表达式编辑器中阅读其文档即可。

您通常要分类的名义(定性)值的另一个示例是在hsv空间中工作:

color_hsva( hue, saturation, value, alpha )创建颜色的功能。值必须介于

  • 色相:0-360(含义如下)
  • 值和饱和度:0-100
  • alpha: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),并将alpha通道(不透明度)替换为从字段计算得出的值)。这意味着您可以设置填充颜色表达式,然后高兴地继续使用分类或渐变渲染器自动设置基本填充颜色,并且仍然会遵循不透明度规则。无需以这种方式对rgb值进行硬编码!


1
尼斯和灵活的方法!
Matthias Kuhn

这似乎在QGIS 3+中不起作用。添加该表达式后,所有多边形呈现​​相同的不透明度的单一颜色。
罗布罗克

3

您也可以在图层的“图层属性”中设置此值(右键单击->属性)。
使用样式->分类,然后选择要使用的列,例如“值”,在色带中选择颜色,然后单击“分类”。
然后,您可以定义每个值的颜色及其透明度。

在此处输入图片说明

如果将新值添加到使用的图层,请单击Clasify将其添加到现有样式。


1
这将不允许在问题中指定使用不同的字段进行透明度和分类。
Matthias Kuhn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.