I'm trying to apply a graduated renderer on a point layer. I found this code here (the first in the solution) and slightly modified it to my project.
It seem's to work beautifully (in the layer legend I get all different point colors listed), but on the map canvas all points are gone/aren't shown anymore!
And if I press "show feature count", I can see the points are still there but somehow aren't listed in the new added colors:
here my code:
def validatedDefaultSymbol( geometryType ):
symbol = QgsSymbolV2.defaultSymbol( geometryType )
if symbol is None:
if geometryType == QGis.Point:
symbol = QgsMarkerSymbolV2()
print ("yes point")
elif geometryType == QGis.Line:
symbol = QgsLineSymbolV2 ()
elif geometryType == QGis.Polygon:
symbol = QgsFillSymbolV2 ()
return symbol
def makeSymbologyForRange( layer, min , max, title, color):
symbol = validatedDefaultSymbol( layer.geometryType() )
symbol.setColor( color )
range = QgsRendererRangeV2( min, max, symbol, title )
return range
def applySymbologyFixedDivisions():
targetField = 'score'
try:
layer = QgsMapLayerRegistry.instance().mapLayersByName('itpoint')[0]
print ('itpoint-layer found')
rangeList = []
rangeList.append( makeSymbologyForRange( layer,0.0, 0.1, '---', QColor(38, 166, 154) ) )
rangeList.append( makeSymbologyForRange( layer, 0.1, 0.2,'--o', QColor(76, 175, 80) ) )
rangeList.append( makeSymbologyForRange( layer, 0.2, 0.3,'--', QColor(139, 195, 74) ) )
rangeList.append( makeSymbologyForRange( layer, 0.3, 0.4,'-o', QColor(212, 225, 87) ) )
rangeList.append( makeSymbologyForRange( layer, 0.4, 0.5,'-', QColor(255, 238, 88) ) )
rangeList.append( makeSymbologyForRange( layer, 0.5, 0.6,'o', QColor(255, 193, 7) ) )
rangeList.append( makeSymbologyForRange( layer, 0.6, 0.7,'+', QColor(255, 152, 0) ) )
rangeList.append( makeSymbologyForRange( layer, 0.7, 0.8,'+o', QColor(255, 87, 34) ) )
rangeList.append( makeSymbologyForRange( layer, 0.8, 0.9,'++', QColor(244, 67, 54) ) )
rangeList.append( makeSymbologyForRange( layer, 0.9, 1.0,'++o', QColor(183, 28, 28) ) )
rangeList.append( makeSymbologyForRange( layer,1.0, 2,'+++', QColor("Brown") ) )
renderer = QgsGraduatedSymbolRendererV2( targetField, rangeList )
renderer.setMode( QgsGraduatedSymbolRendererV2.Custom )
layer.setRendererV2( renderer )
layer.triggerRepaint()
except:
print ("failed")
Has someone an idea why?
(Note: I know that because it is a point layer I actually don't need the "validatedDefaultSymbol", but who knows if another layer is following... ;-))