*! version 1.1.0 29may2026

Title

qqsurf -- Pseudo-3D surface plot for QQ results

Syntax

qqsurf [using filename] [, options]

value(varname) value to plot (default coef)

variable(name) filter by variable name (for mqqr)

colormap(name) see qqheat (default jet)

levels(#) color resolution (default 30)

azimuth(#) rotation angle (degrees, default 35)

elevation(#) elevation angle (degrees, default 25)

title(string) plot title

save(filename) export graph

name(name) graph window name

replace overwrite when saving

Description

qqsurf renders a pseudo-3D surface using oblique projection. Each grid
cell is drawn as a square marker, coloured by its z-value with the chosen
colormap, then projected onto 2D using the azimuth and elevation
angles.

Limitations: Stata cannot rotate the resulting graph interactively. For
a richer filled surface with a wireframe, bounding box and colour bar, use
qqsurf3d; for true interactive 3D, export the data and plot in
MATLAB / Python / R.

Dependencies

None beyond base Stata. qqsurf uses only base twoway
scatter and generates colormaps internally — no heatplot,
colorpalette, palettes or other add-on is needed.

Example

. qqsurf using qq.dta, value(coef) colormap(parula) azim(45) ele(30)

Author

Merwan Roudane. merwanroudane920@gmail.com

See also

qqr, qqheat, qqsurf3d, qqtable,
qqr_package