Hi Martin, <div><br></div><div>I would like to propose a couple of Python snippets to be included in the PyQGIS Cookbook.</div><div><br></div><div>1)  Load of MySQL geometries:</div><div>----------------------</div><div>uri = &quot;MySQL:dbname,host=localhost,port=3306,user=root,password=xxx|layername=my_table&quot;<br>



vLayer = QgsVectorLayer( uri, &#39;my_table&#39;, &#39;ogr&#39; )<br>----------------------</div><div>BTW, I&#39;m not sure if it is the best way to do it, but it works.</div><div><br></div><div>2) Graduated symbol renderer (Old symbology):</div>

<div>----------------------</div><div><div>fieldName = &quot;My_Field&quot;</div><div>numberOfClasses = 5</div><div>mFieldMap = {}</div><div><br></div><div># Get the field index based on the field name</div><div>fields = layer.pendingFields()</div>

<div>for ( key, field ) in fields.iteritems():</div><div>    if field.type() == QVariant.Int or field.type() == QVariant.Double:        </div><div>        mFieldMap[ str( <a href="http://field.name">field.name</a>() ) ] = key</div>

<div>fieldIndex = mFieldMap[ fieldName ]</div><div><br></div><div># Create the renderer object</div><div>renderer = QgsGraduatedSymbolRenderer( layer.geometryType() )</div><div>renderer.setMode( QgsGraduatedSymbolRenderer.EqualInterval ) # EqualInterval/Quantile/Empty</div>

<div><br></div><div># Prepare the required symbol objects</div><div>symbolList = []</div><div>geom = layer.geometryType()</div><div>provider = layer.dataProvider()</div><div>for i in range( numberOfClasses ):</div><div>    symbol = QgsSymbol( geom )</div>

<div>    brush = QBrush()        </div><div>    brush.setColor( self.randomColor() )</div><div>    brush.setStyle( Qt.SolidPattern )</div><div>    symbol.setBrush( brush )</div><div>    symbolList.append( symbol )</div><div>

<br></div><div># Define classes</div><div>minimum = provider.minimumValue( fieldIndex ).toDouble()[ 0 ]</div><div>maximum = provider.maximumValue( fieldIndex ).toDouble()[ 0 ]</div><div>for i in range( numberOfClasses ):</div>

<div>    # Switch if attribute is int or double</div><div>    lower = (&#39;%.*f&#39; % (2, minimum + ( maximum - minimum ) / numberOfClasses * i ) )</div><div>    upper = (&#39;%.*f&#39; % (2, minimum + ( maximum - minimum ) / numberOfClasses * ( i + 1 ) ) )</div>

<div><br></div><div>    lowerString = QVariant( lower ).toString()</div><div>    upperString = QVariant( upper ).toString()</div><div>    symbolList[ i ].setLowerValue( lowerString )</div><div>    symbolList[ i ].setUpperValue( upperString )</div>

<div>    symbolList[ i ].setLabel( lowerString + &quot; - &quot; + upperString )</div><div><br></div><div># Define a symbol object based on each class</div><div>for i in range( numberOfClasses ):</div><div>    symbol = symbolList[ i ]</div>

<div>    lower_bound = symbol.lowerValue()</div><div>    upper_bound = symbol.upperValue()</div><div>    label = symbol.label()</div><div><br></div><div>    sy = QgsSymbol( layer.geometryType(), lower_bound, upper_bound, label )</div>

<div>    sy.setFillColor( symbol.brush().color() )</div><div>    sy.setFillStyle( symbol.brush().style() )</div><div><br></div><div>    renderer.addSymbol( sy )</div><div><br></div><div>renderer.setClassificationField( fieldIndex )</div>

<div>layer.setRenderer( renderer )</div><div>----------------------</div></div><div><br></div><div><br></div><div>Regards, </div>
<div><br></div><div>Germán <br clear="all"><br>-- <br>-----------<br>   |\__  <br>(:&gt;__)(<br>   |/    <br><br>Soluciones Geoinformáticas Libres                            <br><a href="http://geotux.tuxfamily.org/" target="_blank">http://geotux.tuxfamily.org/</a><br>



</div>