def make(cls, catalogue_map): layer = catalogue_map.catalogue_layer symbol = QgsSymbolV2.defaultSymbol(layer.geometryType()) ramp = QgsVectorGradientColorRampV2.create( dict(color1='white', color2='blue')) symbol.setSize(0.15) # number of color classes = 8 renderer = cls.createRenderer( layer, "depth", 8, QgsGraduatedSymbolRendererV2.Quantile, symbol, ramp) renderer.setSizeScaleField("_magnitude") renderer.setScaleMethod(QgsSymbolV2.ScaleDiameter) renderer.update_syms = lambda x: x return renderer
def testQgsVectorRandomColorRampV2(self): # test gradient with only start/end color r = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0)) self.assertEqual(r.type(), 'gradient') self.assertEqual(r.color1(), QColor(200, 0, 0)) self.assertEqual(r.color2(), QColor(0, 200, 0)) self.assertEqual(r.isDiscrete(), False) self.assertEqual(len(r.stops()), 0) self.assertEqual(r.count(), 2) self.assertEqual(r.value(0), 0.0) self.assertEqual(r.value(1), 1.0) self.assertEqual(r.color(0), QColor(200, 0, 0)) self.assertEqual(r.color(1), QColor(0, 200, 0)) self.assertEqual(r.color(0.5), QColor(100, 100, 0)) # test gradient with stops r = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), False, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) self.assertEqual(r.color1(), QColor(200, 0, 0)) self.assertEqual(r.color2(), QColor(0, 200, 0)) self.assertEqual(r.isDiscrete(), False) self.assertEqual(len(r.stops()), 2) self.assertEqual(r.count(), 4) self.assertEqual(r.value(0), 0.0) self.assertEqual(r.value(1), 0.1) self.assertEqual(r.value(2), 0.9) self.assertEqual(r.value(3), 1.0) self.assertEqual(r.color(0), QColor(200, 0, 0)) self.assertEqual(r.color(0.05), QColor(190, 10, 20)) self.assertEqual(r.color(0.1), QColor(180, 20, 40)) self.assertEqual(r.color(0.5), QColor(110, 40, 70)) self.assertEqual(r.color(0.9), QColor(40, 60, 100)) self.assertEqual(r.color(0.95), QColor(20, 129, 50)) self.assertEqual(r.color(1), QColor(0, 200, 0)) # test setters r.setColor1(QColor(0, 0, 200)) self.assertEqual(r.color1(), QColor(0, 0, 200)) self.assertEqual(r.color(0), QColor(0, 0, 200)) r.setColor2(QColor(0, 0, 100)) self.assertEqual(r.color2(), QColor(0, 0, 100)) self.assertEqual(r.color(1.0), QColor(0, 0, 100)) r.setStops([QgsGradientStop(0.4, QColor(100, 100, 40))]) s = r.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) self.assertEqual(s[0].color, QColor(100, 100, 40)) # test info r.setInfo({'key1': 'val1', 'key2': 'val2'}) self.assertEqual(r.info()['key1'], 'val1') self.assertEqual(r.info()['key2'], 'val2') # test creating from properties props = r.properties() fromProps = QgsVectorGradientColorRampV2.create(props) self.assertEqual(fromProps.color1(), QColor(0, 0, 200)) self.assertEqual(fromProps.color2(), QColor(0, 0, 100)) s = fromProps.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) c = QColor(s[0].color) self.assertEqual(c, QColor(100, 100, 40)) self.assertEqual(fromProps.info()['key1'], 'val1') self.assertEqual(fromProps.info()['key2'], 'val2') self.assertEqual(fromProps.isDiscrete(), False) # test cloning ramp cloned = r.clone() self.assertEqual(cloned.color1(), QColor(0, 0, 200)) self.assertEqual(cloned.color2(), QColor(0, 0, 100)) s = cloned.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) c = QColor(s[0].color) self.assertEqual(c, QColor(100, 100, 40)) self.assertEqual(cloned.info()['key1'], 'val1') self.assertEqual(cloned.info()['key2'], 'val2') self.assertEqual(cloned.isDiscrete(), False) # test discrete ramps # first with no stops d = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), True) self.assertEqual(d.isDiscrete(), True) self.assertEqual(d.color(0), QColor(200, 0, 0)) self.assertEqual(d.color(0.5), QColor(200, 0, 0)) self.assertEqual(d.color(1), QColor(0, 200, 0)) # then with stops d = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), True, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) self.assertEqual(d.isDiscrete(), True) self.assertEqual(d.color(0), QColor(200, 0, 0)) self.assertEqual(d.color(0.05), QColor(200, 0, 0)) self.assertEqual(d.color(0.1), QColor(180, 20, 40)) self.assertEqual(d.color(0.5), QColor(180, 20, 40)) self.assertEqual(d.color(0.9), QColor(40, 60, 100)) self.assertEqual(d.color(0.95), QColor(40, 60, 100)) self.assertEqual(d.color(1), QColor(0, 200, 0)) # to gradient g = QGradient() r = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), False, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) r.addStopsToGradient(g, 0.5) self.assertEqual(len(g.stops()), 4) self.assertEqual(g.stops()[0], (0.0, QColor(200, 0, 0, 127))) self.assertEqual(g.stops()[1], (0.1, QColor(180, 20, 40, 127))) self.assertEqual(g.stops()[2], (0.9, QColor(40, 60, 100, 127))) self.assertEqual(g.stops()[3], (1.0, QColor(0, 200, 0, 127)))
def testQgsVectorGradientRampV2(self): # test QgsGradientStop stop = QgsGradientStop(0.9, QColor(200, 150, 100)) self.assertEqual(stop.offset, 0.9) self.assertEqual(stop.color, QColor(200, 150, 100)) self.assertEqual(QgsGradientStop(0.1, QColor(180, 20, 30)), QgsGradientStop(0.1, QColor(180, 20, 30))) self.assertNotEqual(QgsGradientStop(0.1, QColor(180, 20, 30)), QgsGradientStop(0.2, QColor(180, 20, 30))) self.assertNotEqual(QgsGradientStop(0.1, QColor(180, 20, 30)), QgsGradientStop(0.1, QColor(180, 40, 30))) # test gradient with only start/end color r = QgsVectorGradientColorRampV2(QColor(200, 0, 0, 100), QColor(0, 200, 0, 200)) self.assertEqual(r.type(), 'gradient') self.assertEqual(r.color1(), QColor(200, 0, 0, 100)) self.assertEqual(r.color2(), QColor(0, 200, 0, 200)) self.assertEqual(r.isDiscrete(), False) self.assertEqual(len(r.stops()), 0) self.assertEqual(r.count(), 2) self.assertEqual(r.value(0), 0.0) self.assertEqual(r.value(1), 1.0) self.assertEqual(r.color(0), QColor(200, 0, 0, 100)) self.assertEqual(r.color(1), QColor(0, 200, 0, 200)) self.assertEqual(r.color(0.5), QColor(100, 100, 0, 150)) # test gradient with stops r = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), False, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) self.assertEqual(r.color1(), QColor(200, 0, 0)) self.assertEqual(r.color2(), QColor(0, 200, 0)) self.assertEqual(r.isDiscrete(), False) self.assertEqual(len(r.stops()), 2) self.assertEqual(r.count(), 4) self.assertEqual(r.value(0), 0.0) self.assertEqual(r.value(1), 0.1) self.assertEqual(r.value(2), 0.9) self.assertEqual(r.value(3), 1.0) self.assertEqual(r.color(0), QColor(200, 0, 0)) self.assertEqual(r.color(0.05), QColor(190, 10, 20)) self.assertEqual(r.color(0.1), QColor(180, 20, 40)) self.assertEqual(r.color(0.5), QColor(110, 40, 70)) self.assertEqual(r.color(0.9), QColor(40, 60, 100)) self.assertEqual(r.color(0.95), QColor(20, 130, 50)) self.assertEqual(r.color(1), QColor(0, 200, 0)) # test setters r.setColor1(QColor(0, 0, 200)) self.assertEqual(r.color1(), QColor(0, 0, 200)) self.assertEqual(r.color(0), QColor(0, 0, 200)) r.setColor2(QColor(0, 0, 100)) self.assertEqual(r.color2(), QColor(0, 0, 100)) self.assertEqual(r.color(1.0), QColor(0, 0, 100)) r.setStops([QgsGradientStop(0.4, QColor(100, 100, 40))]) s = r.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) self.assertEqual(s[0].color, QColor(100, 100, 40)) # test info r.setInfo({'key1': 'val1', 'key2': 'val2'}) self.assertEqual(r.info()['key1'], 'val1') self.assertEqual(r.info()['key2'], 'val2') # test creating from properties props = r.properties() fromProps = QgsVectorGradientColorRampV2.create(props) self.assertEqual(fromProps.color1(), QColor(0, 0, 200)) self.assertEqual(fromProps.color2(), QColor(0, 0, 100)) s = fromProps.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) c = QColor(s[0].color) self.assertEqual(c, QColor(100, 100, 40)) self.assertEqual(fromProps.info()['key1'], 'val1') self.assertEqual(fromProps.info()['key2'], 'val2') self.assertEqual(fromProps.isDiscrete(), False) # test cloning ramp cloned = r.clone() self.assertEqual(cloned.color1(), QColor(0, 0, 200)) self.assertEqual(cloned.color2(), QColor(0, 0, 100)) s = cloned.stops() self.assertEqual(len(s), 1) self.assertEqual(s[0].offset, 0.4) c = QColor(s[0].color) self.assertEqual(c, QColor(100, 100, 40)) self.assertEqual(cloned.info()['key1'], 'val1') self.assertEqual(cloned.info()['key2'], 'val2') self.assertEqual(cloned.isDiscrete(), False) # test discrete ramps # first with no stops d = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), True) self.assertEqual(d.isDiscrete(), True) self.assertEqual(d.color(0), QColor(200, 0, 0)) self.assertEqual(d.color(0.5), QColor(200, 0, 0)) self.assertEqual(d.color(1), QColor(0, 200, 0)) # then with stops d = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), True, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) self.assertEqual(d.isDiscrete(), True) self.assertEqual(d.color(0), QColor(200, 0, 0)) self.assertEqual(d.color(0.05), QColor(200, 0, 0)) self.assertEqual(d.color(0.1), QColor(180, 20, 40)) self.assertEqual(d.color(0.5), QColor(180, 20, 40)) self.assertEqual(d.color(0.9), QColor(40, 60, 100)) self.assertEqual(d.color(0.95), QColor(40, 60, 100)) self.assertEqual(d.color(1), QColor(0, 200, 0)) # to gradient g = QGradient() r = QgsVectorGradientColorRampV2(QColor(200, 0, 0), QColor(0, 200, 0), False, [QgsGradientStop(0.1, QColor(180, 20, 40)), QgsGradientStop(0.9, QColor(40, 60, 100))]) r.addStopsToGradient(g, 0.5) self.assertEqual(len(g.stops()), 4) self.assertEqual(g.stops()[0], (0.0, QColor(200, 0, 0, 127))) self.assertEqual(g.stops()[1], (0.1, QColor(180, 20, 40, 127))) self.assertEqual(g.stops()[2], (0.9, QColor(40, 60, 100, 127))) self.assertEqual(g.stops()[3], (1.0, QColor(0, 200, 0, 127))) # test that stops are ordered when setting them # first add some out-of-order stops r.setStops([QgsGradientStop(0.4, QColor(100, 100, 40)), QgsGradientStop(0.2, QColor(200, 200, 80)), QgsGradientStop(0.8, QColor(50, 20, 10)), QgsGradientStop(0.6, QColor(10, 10, 4))]) s = r.stops() self.assertEqual(len(s), 4) self.assertEqual(s[0].offset, 0.2) self.assertEqual(s[0].color, QColor(200, 200, 80)) self.assertEqual(s[1].offset, 0.4) self.assertEqual(s[1].color, QColor(100, 100, 40)) self.assertEqual(s[2].offset, 0.6) self.assertEqual(s[2].color, QColor(10, 10, 4)) self.assertEqual(s[3].offset, 0.8) self.assertEqual(s[3].color, QColor(50, 20, 10))
Created: 2016-12-07 Updated: Copyright: (c) AequilibraE authors Licence: See LICENSE.TXTtxt_ramp ----------------------------------------------------------------------------------------------------------- """ from qgis.core import QgsVectorGradientColorRampV2 AequilibraERamps = {} BlueGreenYellowRedBlack = QgsVectorGradientColorRampV2.create({ "color1": "36,219,255", # Blue from 0 forward "color2": "0,0,0", # Black at 100% "stops": "0.25;0,230,0:" "0.50;255,248,0:" "0.75;252,0,0", # Green from 25% forward # Yellow from 50% forward }) # Red from 75% forward AequilibraERamps["Blue-Green-Yellow-Red-Black"] = BlueGreenYellowRedBlack GreenYellowRedBlack = QgsVectorGradientColorRampV2.create({ "color1": "0,230,0", # Green from 0% forward "color2": "0,0,0", # Black at 100% "stops": "0.25;255,248,0:" "0.50;252,0,0", # Yellow from 25% forward }) # Red from 50% forward
Original Author: Pedro Camargo ([email protected]) Contributors: Last edited by: Pedro Camargo Website: www.AequilibraE.com Repository: https://github.com/AequilibraE/AequilibraE Created: 2016-12-07 Updated: Copyright: (c) AequilibraE authors Licence: See LICENSE.TXTtxt_ramp ----------------------------------------------------------------------------------------------------------- """ from qgis.core import QgsVectorGradientColorRampV2 AequilibraERamps = {} BlueGreenYellowRedBlack = QgsVectorGradientColorRampV2.create({'color1': '36,219,255', # Blue from 0 forward 'color2': '0,0,0', #Black at 100% 'stops': '0.25;0,230,0:' # Green from 25% forward '0.50;255,248,0:' # Yellow from 50% forward '0.75;252,0,0'}) #Red from 75% forward AequilibraERamps['Blue-Green-Yellow-Red-Black'] = BlueGreenYellowRedBlack GreenYellowRedBlack = QgsVectorGradientColorRampV2.create({'color1': '0,230,0', # Green from 0% forward 'color2': '0,0,0', #Black at 100% 'stops': '0.25;255,248,0:' # Yellow from 25% forward '0.50;252,0,0'}) # Red from 50% forward AequilibraERamps['Green-Yellow-Red-Black'] = GreenYellowRedBlack