Intento conseguir esto -> ¿Cómo copiar el estilo de color en una columna de color de la tabla de atributos de una capa?
guión de @Germán Carrillo
prefix = "'"
layer = iface.activeLayer()
attr = layer.rendererV2().classAttribute()
attrColor = 'color' # Name of the field to store colors
fieldIndex = layer.dataProvider().fieldNameIndex(attrColor)
attrFeatMap = {}
for cat in layer.rendererV2().categories():
expr = "\""+attr+"\"="+prefix+unicode(cat.value())+prefix
for f in layer.getFeatures(QgsFeatureRequest(QgsExpression(expr))):
attrMap = { fieldIndex : cat.symbol().color().name()}
attrFeatMap[ f.id() ] = attrMap
layer.dataProvider().changeAttributeValues( attrFeatMap )
pero después de usar ese script estoy recibiendo un error
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'QgsGraduatedSymbolRendererV2' object has no attribute 'categories'
porque es para una capa clasificada con un Renderizador de Símbolos Categorizados.
Entonces el problema es que puedo usar este script solo con color aleatorio... Pero, ¿cómo hacer lo mismo gradiente de colores como ndvi -1 / 1
¿podría esto ayudarme? -> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#graduated-symbol-renderer
Primera vez que trabajo con python.....
EDIT : Qgis 2.10.1 - PISA EDIT : Añadir imagen
0 votos
¿Qué versión de QGIS utiliza?
0 votos
@ArMoraer Qgis 2.10.1 - PISA
0 votos
El problema es que la clase de renderizador es QgsCategorizedSymbolRendererV2 en lugar de QgsGraduatedSymbolRendererV2 . Por favor, vea mi respuesta.