Now, as am1933 alludes to in another thread, it's too bad plotting such graphs is not possible in pure BASIC.
Guess "pure BASIC" includes XB. Here's a little quick and dirty. Coordinate system is (0,0)-(63,47) starting in the top left corner of the screen. I guess it generally breaks if you go outside the limits. Source below.

100 !CALL CLEAR 110 CALL SETUP 120 !*** DRAW AN ELLIPSE 130 FOR I=0 TO 3.14*2 STEP .04::CALL PLOT(COS(I)*30+32,SIN(I)*22+24)::NEXT I 140 !*** DRAW A LINE 150 FOR I=0 TO 63::CALL PLOT(I,I/64*48 )::NEXT I 160 END 800 !*** CREATE PLOT PATTERN CHARACTERS *** 810 SUB SETUP 820 S$="00F00FFF"::FOR X2=0 TO 3::FOR X1=0 TO 3 830 CALL CHAR(128+X1+X2*4,RPT$(SEG$(S$,X1*2+1,2),4)&RPT$(SEG$(S$,X2*2+1,2),4)) 840 NEXT X1::NEXT X2::SUBEND 900 !*** PLOT ROUTINE *** 910 SUB PLOT(X,Y)::CALL GCHAR(INT(Y/2+1),INT(X/2+1),G) 920 IF G<128 OR G>143 THEN G=128 930 G=128+((G AND 15)OR(((INT(X) AND 1)+1)*((INT(Y) AND 1)*3+1))) 940 CALL HCHAR(INT(Y/2+1),INT(X/2+1),G)::SUBEND