GRASS logo


v.colors2 - Sets color rules for features in a vector map using a numeric attribute column.


vector, color table


v.colors2 --help
v.colors2 [-sn] map=name [layer=string] column=name [rgb_column=name] [range=min,max] [color=string] [raster=name] [rules=name] [--help] [--verbose] [--quiet] [--ui]


Save placeholder raster map for use with d.legend
Invert colors
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


map=name [required]
Name of vector map
Or data source for direct OGR access
Layer number or name
Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
Default: 1
column=name [required]
Name of attribute column containing numeric data
Name of color column to populate with RGB values
Manually set range (min,max)
Type of color table
Options: aspect, aspectcolr, bcyr, bgyr, byg, byr, celsius, corine, curvature, differences, elevation, etopo2, evi, gdd, grey, grey1.0, grey255, grey.eq, grey.log, gyr, ndvi, population, precipitation, rainbow, ramp, random, ryb, ryg, sepia, slope, srtm, terrain, wave
Name of raster map from which to copy color table
Name of file containing rules

Table of contents


v.colors is much like r.colors, but may be used for vector maps. You give it a vector map and numeric data column, together with color rules like you would do for a raster. It creates a new column in the database with R:G:B values suitable for use with 'd.vect -a'.

How it works: it creates a dummy raster map with the same data range as the vector's column then runs r.colors for that temporary map. It then uses r.what.colors for each value found by and uploads it a new column in the vector map's attribute database.

It is planned that this script will be replaced with a C display module which renders thematic vector maps directly instead requiring the overhead of saving the colors into the DB.

If the target column name given by the rgb_column option does not exist, it will be created. The default name is "GRASSRGB".


Create a random sample point map, query raster map values for those points, and colorize output.
# Spearfish dataset
g.region -d
v.random out=rand5k_elev n=5000
v.db.addtable map=rand5k_elev column='elevation double precision'
v.what.rast vector=rand5k_elev raster=elevation.10m column=elevation
v.colors map=rand5k_elev column=elevation color=bcyr

# display colorized points map
d.mon x0
d.vect -a rand5k_elev

Colorizing the roads map in Spearfish:

g.copy vector=roads,myroads
echo "1 red
2 yellow
3 orange
4 black
5 grey" > colors.txt

v.colors myroads column=cat rules=colors.txt

# display colorized roads map
d.mon x0
d.vect -a myroads

Colorizing a TIN (polygons) generated by v.delaunay:

# new columns for x,y,z of centroids
v.db.addtable map=tin \
   columns="east double precision, north double precision, height double precision, GRASSRGB varchar(11)"

# transfer geometry for colorizing (we need the centroid height) tin option=coor columns="east,north,height" tin

v.colors tin column=height rgb_column=GRASSRGB color=rainbow

# display colorized triangles
d.mon x0
d.vect -a tin


d.vect, r.colors, r.colors.stddev, r.what.color, v.db.addcolumn,, db.execute


Hamish Bowman
Dunedin, New Zealand


Available at: v.colors2 source code (history)

Latest change: Thursday Feb 03 09:32:35 2022 in commit: f17c792f5de56c64ecfbe63ec315307872cf9d5c

Main index | Vector index | Topics index | Keywords index | Graphical index | Full index

© 2003-2024 GRASS Development Team, GRASS GIS 8.3.3dev Reference Manual