From Matthew Logue in BASIC on the ZX Spectrum Facebook group:
Change Z to change the graph.
100 REM 3 Axis chart with solid Bars - From Spectrum Graphics And Sound by Steve Money
110 REM z=(4+2*COS(x/20))*(y/10+1)
120 LET cx=128: LET cy=16
130 LET dx1=10: LET dy1=5
140 LET dx2=8: LET dy2=4
150 REM Draw x,y Grid
160 GO SUB 400
165 REM Draw chart
170 FOR x=100 TO 0 STEP -20
180 FOR y=90 TO 0 STEP -15
190 LET z=INT ((4+2*COS (x/20))*(y/10+1))
195 REM Draw Bbar
200 GO SUB 500
210 NEXT y
220 NEXT x
230 STOP
390 REM x,y Grid Subroutine
400 FOR x=0 TO 100 STEP 20
410 PLOT cx+x,cy+x/2
420 DRAW -100,50
430 NEXT x
440 FOR y=0 TO 90 STEP 15
450 PLOT cx-y,cy+y/2
460 DRAW 110,55
470 NEXT y
480 RETURN
500 REM Bar drawing subroutine
505 REM Draw face of bar
510 FOR n=0 TO z-1
520 PLOT cx+x-y,cy+x/2+y/2+n
530 DRAW dx1,dy1
540 NEXT n
545 REM Erase side of bar
550 INVERSE 1
560 FOR n=0 TO z-1
570 PLOT cx+x-y,cy+x/2+y/2+n
580 DRAW -dx2,dy2
590 NEXT n
600 INVERSE 0
605 REM Draw side of bar
610 PLOT cx+x-y,cy+x/2+y/2
620 DRAW -dx2,dy2
630 DRAW 0,z
640 DRAW dx2,-dy2
650 DRAW 0,-z
660 REM Erase top of bar
670 INVERSE 1
680 FOR n=0 TO dx2-1
690 PLOT cx+x-y-n,cy+z+(x+y+n)/2
700 DRAW dx1,dy1
710 NEXT n
720 INVERSE 0
725 REM Draw top of bar
730 PLOT cx+x-y,cy+x/2+y/2+z
740 DRAW dx1,dy1
750 DRAW -dx2,dy2
760 DRAW -dx1,-dy1
770 DRAW dx2,-dy2
780 RETURN