layer = iface.activeLayer() provider = layer.dataProvider() extent = layer.extent() stats = provider.bandStatistics(1) colorRamp = QgsColorRampShader() colorRamp.setColorRampType(QgsColorRampShader.Interpolated) colorRamp.setColorRampAlgorithm(QgsColorRampShader.EqualInterval) startColor = QColor(0, 0, 255) midColor = QColor(255, 255, 255) endColor = QColor(255, 0, 0) colorRamp.setColor1(startColor) colorRamp.setColor2(midColor) colorRamp.setColor3(endColor) shader = QgsRasterShader() shader.setRasterShaderFunction(colorRamp) renderer = QgsSingleBandPseudoColorRenderer(layer.dataProvider(), 1, shader) renderer.setExtent(extent) layer = QgsRasterLayer(provider.dataSourceUri(), "Raster Layer") layer.setRenderer(renderer) QgsMapLayerRegistry.instance().addMapLayer(layer)
layer = QgsVectorLayer('path/to/shapefile.shp', 'Shapefile', 'ogr') renderer = layer.rendererV2() symbol = renderer.symbol() stroke = symbol.symbolLayer(0) colorRamp = QgsColorRampShader() colorRamp.setColorRampType(QgsColorRampShader.Interpolated) colorRamp.setColorRampAlgorithm(QgsColorRampShader.EqualInterval) colorRamp.setColor1(QColor(255, 0, 0)) colorRamp.setColor2(QColor(255, 255, 255)) colorRamp.setColor3(QColor(0, 0, 255)) stroke.setFillColor(QgsFillSymbolV2.createSimple({'color_ramp': colorRamp})) layer.triggerRepaint()In this example, a color ramp shader is applied to a vector layer by first accessing the symbol and stroke of the layer's renderer. The color ramp is set to go from red to white to blue, with the values being interpolated between those colors. The fill color of the stroke is set to the color ramp shader, and the vector layer is repainted to display the new colors. Overall, the QgsColorRampShader class is a key component in generating color ramps for QGIS layers based on varying data values.