Index de l'article

Symbology

Simple symbology on points

my_layer = QgsProject.instance().mapLayersByName("My points")[0]
 
symbol_peak = QgsMarkerSymbol.createSimple({'name': 'Triangle', 'color': 'green', 'outline_color': 'black', 'size': '4'})
mylayer.renderer().setSymbol(symbol_peak)
mylayer.triggerRepaint()

Other point markers: 

circle square cross rectangle diamond pentagon triangle equilateral_triangle star regular_star arrow filled_arrowhead x

Simple symbology on lines

With HTML color.

myroads = QgsProject.instance().mapLayersByName("Roads")[0]
myrivers = QgsProject.instance().mapLayersByName("Rivers")[0]
 
# Roads
symbol = QgsLineSymbol.createSimple({'line_style': 'dash', 'line_width': '0.5', 'color': 'black'})
myroads.renderer().setSymbol(symbol)
myroads.triggerRepaint()
 
# Rivers
symbol = QgsLineSymbol.createSimple({'line_style': 'solid', 'line_width': '0.75', 'color': '#0088CC'})
myrivers.renderer().setSymbol(symbol)
myrivers.triggerRepaint()

Simple symbology on polygons

With RGB color (50,165,77,75), and some transparency (here 75, from 0 to 255), et on rafraîchit le panneau des couches afin que notre légende y soit aussi prise en compte:

myground = QgsProject.instance().mapLayersByName("Ground")[0]
 
symbol = QgsFillSymbol.createSimple({'line_style': 'solid', 'line_width': '0.2', 'color': '50,165,77,75'})
myground.renderer().setSymbol(symbol)
 
myground.triggerRepaint()
iface.layerTreeView().refreshLayerSymbology(myground.id())
iface.mapCanvas().refresh()

Check current symbology properties

my_layer = QgsProject.instance().mapLayersByName("My points")[0]
print(my_layer.renderer().symbol().symbolLayers()[0].properties())

Categorized Symbology

For a categorized symbology, we will need to define several symbologies, then assign them based on attribute values.

Here we put all our peaks in blue triangle (, then we will look for a single peak based on its name (My best peak, in the NAME field). This will change to a dark blue triangle and larger size ().

symbol_peak = QgsMarkerSymbol.createSimple({'name': 'Triangle', 'color': '#0088CC', 'outline_color': 'black', 'size': '4'})
symbol_peak_selected = QgsMarkerSymbol.createSimple({'name': 'Triangle', 'color': 'blue', 'outline_color': 'black', 'size': '7'})
 
color_peak = QgsRendererCategory(None, symbol_peak, 'Peaks', True)
color_peak_selected = QgsRendererCategory('My best peak', symbol_peak_selected, 'My best peak', True)
 
renderer = QgsCategorizedSymbolRenderer("NAME", [color_peak,color_peak_selected])
 
mylayer.setRenderer(renderer)
mylayer.triggerRepaint()
iface.mapCanvas().refresh()

Transparency on a basemap (OSM)

osm = QgsRasterLayer(urlWithParams, "OpenStreetMap", "wms")
project.addMapLayer(osm)
osm.setOpacity(0.75)
 
iface.mapCanvas().refresh()