Page 8 sur 16
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()