GRASS logo


v.scatterplot - Plots the values of two columns in the attribute table of an input vector layer in a scatterplot.


vector, plot, scatterplot


v.scatterplot --help
v.scatterplot [-reg] map=name x=name y=name [type=string] [output=name] [plot_dimensions=string] [dpi=integer] [title=string] [fontsize=float] [marker=string] [s=float] [color=name] [rgbcolumn=name] [bins=string] [density_colormap=string] [trendline=string] [degree=integer] [line_color=name] [line_style=string] [line_width=float] [n=string] [ellipse_color=name] [ellipse_alpha=float] [ellipse_edge_style=string] [ellipse_edge_width=float] [groups=name] [groups_rgb=name] [ellipse_legend=string] [quadrants=string] [quandrant_linecolor=name] [quandrant_linewidth=float] [x_axis_limits=string] [y_axis_limits=string] [--overwrite] [--help] [--verbose] [--quiet] [--ui]


Reverse color map
Draw a covariance confidence ellipse(s)
Add grid lines
Add grid lines
Allow output files to overwrite existing files
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


map=name [required]
Input map
input vector layer
x=name [required]
Name of x column
Name of the column with x values
y=name [required]
Name of y column
Name of the column with y values
Plot type
Type of plot (scatter, density)
Options: scatter, density
Default: scatter
Name of the output file (extension decides format)
Name of the output file. The format is determined by the file extension.
Plot dimensions (width,height)
Dimensions (width,height) of the figure in inches
Default: 6.4,4.8
Resolution of plot in dpi's
Default: 100
Plot title
The title of the plot
Font size
The basis font size (default = 10)
Default: 10
Dot marker
Set dot marker (see for options)
Default: o
Marker size
Set marker size
Dot color
Color of dots
Default: black
RGB column
Column with RGB values defining the colors of the dots of the scatterplot
2D bins
The number of bins in x and y dimension. Density is expressed as the number of points falling within the x and y boundaries of a bin.
Default: 30,30
Density plot color map
Select the color map to be used for the density scatter plot
Options: viridis, plasma, inferno, magma, cividis, Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGn
Default: viridis
Plot trendline
Options: linear, polynomial
Degree polynomial trendline
Default: 1
Color trendline
Color of the trendline
Default: darkgrey
Line style trendline
Line style trendline
Default: --
trendline width
Line width of the trendline
Default: 2
standard deviations
Draw the covariance confidence ellipse(s) with radius of n standard deviations.
Default: 2
Ellipse color
Color of the ellipse
Default: red
Opacity ellipse fill.
Opacity of the fill color of the ellipse.
Options: 0-1
Default: 0.1
Ellipse edge style
Line style of the ellipse
Default: -
Ellipse edge width
Width of the ellipse edge
Default: 1.5
Column grouping the features in categories
Colum with categories. If selected, a separate ellipse will be drawn for each group/category
RGB column for ellipse categories
Column with RGB values per category. These will be used to define the color of the ellipse.
legend for ellipses
Print the legend for the ellipses (only for if ellipses for groups are drawn)
Options: yes, no
Default: yes
Print the mean or median on x and y-axis
Options: mean, median
Line color
Color of the lines making up the quadrants
Default: grey
quandrant line width
Line width of the lines dividing the points in four quadrants
Default: 1
X axis range (min,max)
Set the X axis range to be displayed
Y axis range (min,max)
Set the Y axis range to be displayed

Table of contents


v.scatterplot draws a scatterplot of the value in one column against the values in another column. There are a few layout options, including the option to set the color of the dots, the color, line type, and width of the trend line, and the font size of the axis and tic labels.

Instead of a fixed color, dots can be colored using colors from a user-defined column, or by the spatial density of nearby points, using the option type=density. The spatial density is computed by grouping the points in 2D bins. The number of bins along the x-axis and y-axis is user-defined. The user can select a color map from a list of sequential colormaps and perceptually uniform sequential colormaps. See the matplotlib manual page for details. Use the -r flag to reverse the order of the colors.

By default, the resulting plot is displayed on screen (default). However, the user can also save the plot to a file using the file_name option. The format is determined by the extension given by the user. So, if file_name = outputfile.png, the plot will be saved as a PNG file.

A linear or polynomial trend line with user-defined degrees can be drawn on top of the scatter/density plot. If this option is enables, the R2 and trend line equation are printed to the commmand line.

A confidence ellipse of the covariance of the two variables can be plotted on top of the scatterplot, following the method described here, and using the code described here. The radius of the ellipse can be controlled by n which is the number of standard deviations (SD). The default is 2 SD, which results in an ellipse that encloses around 95% of the points. Optionally, separate confidence ellipses can be drawn for groups defined in the column groups. Groups can be assigned a random color, or a color based on the RGB colors in a user-defined column. Note, all records in the group should have the same color.

The user has the option to limit/expand the X-axis (x_axis_limits) and Y-axis (y_axis_limits). This can e.g., make it easier to compare different plots.


Example 1

For the examples below, the NCA sample data set from GRASS GIS website will be used

Create a new mapset and Use the layer lsat7_2002_10@PERMANENT to set the region.

g.mapset -c mapset=scatterplot
g.region raster=lsat7_2002_10@PERMANENT

Get the list of Landsat layers from the Permanent mapset. Use this as input for i.pca to create principal component layers.

lcc=`g.list type="raster" mapset="PERMANENT" pattern="lsat7_*" sep=,`
i.pca -n input=$lcc output=pca rescale=0,100

Create 5000 random points, retrieve the raster value from the first two PCA layers for each point location of the random points, and write these values to the columns pca_1 and pca_2 in the attribute table of randompoints.

r.random input=elevation npoints=5000 vector=randompoints seed=10
v.what.rast map=randompoints raster=pca.1 column=pca_1
v.what.rast map=randompoints raster=pca.2 column=pca_2

Create a scatterplot, plotting the values from the column pca_1 on the X-axis and pca_2 on the Y-asix, with blue dots.

v.scatterplot map=randompoints x=pca_1 y=pca_2 color=blue

Scatterplot of pca_1 against pca_2
Figure 1. Scatterplot of pca_1 against pca_2.

Example 2

Create a density scatter of the values from pca_1 and pca_2. Add a red dashed polynomial trend line with degree 2.
v.scatterplot map=randompoints x=pca_1 y=pca_2 trendline=polynomial \
              degree=2 line_color=red type=density bins=10,10

Density scatterplot of pca_1 against pca_2
Figure 2. Density scatterplot of pca_1 against pca_2. The dashed red line gives the polynomial trend line (R²=0.149)

Example 3

Retrieves raster value from the raster layer landclass96, and write these values to the column landuse in the attribute table of randompoints. Next, transfer the raster colors of the raster layer landclass96 to the new column RGB of the attribute table of randompoints.
v.what.rast map=randompoints raster=landclass96 column=landuse
v.colors map=randompoints use=attr column=landuse \
         raster=landclass96@PERMANENT rgb_column=RGB

Create a scatterplot, using the colors from the RGB column. Set the size of the dots to 8.

v.scatterplot map=randompoints x=pca_1 y=pca_2 s=8 rgbcolumn=RGB

Scatterplot of pca_1 against pca_1. Colors represent the land use
categories in the point locations based on the landclass96 map.
Figure 3. Scatterplot of pca_1 against pca_1. Colors represent the land use categories in the point locations based on the landclass96 map.

Example 4

Rename the PCA layers to remove the dots from the name. Next, use the v.what.rast.label addon to sample the values of the raster layers pca.1 and pca.2, and the values + labels of the landclass96. Add a column with the landclass colors using v.colors.
g.rename raster=pca.1,pca_1
g.rename raster=pca.2,pca_2
v.what.rast.label vector=randompoints raster=landclass96 \
         raster2=pca_1,pca_2 output=randompoints2
v.colors map=randompoints2 use=attr column=landclass96_ID \
         raster=landclass96 rgb_column=RGB

Extract the points with the categories forest (5), water (6) and developed (1). Create a scatterplot of pca_1 against pca_2 and add the 2 SD confidence ellipse of the covariance of the two variables for each of the land use categories, coloring both the dots and ellipses using the landclass colors.

v.extract input=randompoints2 \
          where='landclass96_ID=1 OR landclass96_ID=5 OR landclass96_ID=6' \
v.scatterplot -e map=forwatdev x=pca_1 y=pca_2 rgbcolumn=RGB s=5  \
              groups=landclass96 groups_rgb=RGB

v.scatterplot: confidence ellipses per land class
Figure 4. Scatterplot with confidence ellipses per land class. The radius of the ellipses is 2 SD.


d.vect.colbp, d.vect.colhist, r.boxplot, r.series.boxplot, t.rast.boxplot, r.scatterplot r3.scatterplot


Paulo van Breugel Applied Geo-information Sciences HAS green academy, University of Applied Sciences


Available at: v.scatterplot source code (history)

Latest change: Monday Jun 24 08:16:48 2024 in commit: 8939a985d18de5366340b88037ab0fe3a0814c9b

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

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