1:- use_module(library(mcintyre)).    2
    3:- if(current_predicate(use_rendering/1)).    4:- use_rendering(c3).    5:- endif.    6:- mc.    7:- begin_lpad.    8
    9mvg(G):gaussian(G,[0,0],[[1,0.6],[0.6,2]]).
   10
   11mvg1(_,G):gaussian(G,[M1,M2],[[1,0.6],[0.6,2]]):-
   12  mean(1,M1),
   13  mean(2,M2).
   14
   15mean(_,M):gaussian(M,0,1).
   16
   17mvg2(_,G):gaussian(G,[0,0],[[1,0.6],[0.6,2]]).
   18mvg3(G):gaussian(G,[0,0,0],[[2,-1,0],[-1,2,-1],[0,-1,2]]).
   19:- end_lpad.   20
   21chart(Chart):-
   22  mc_sample_arg_first(mvg(G),1000,G,V),
   23  maplist(val,V,ValList),
   24  Chart = c3{data:_{x:x, rows:[x-y|ValList], type:scatter},
   25  legend:_{show: false},
   26  axis:_{ x:_{ tick:_{fit:false}}}}.
   27
   28val([X,Y]-_,X-Y).
   29
   30obs(L):-
   31  mc_lw_sample_arg(mvg1(1,G),mvg1(1,[1,1]),2,G,L).
   32
   33gv3(L):-
   34  mc_sample_arg_first(mvg3(G),10,G,L).

?- chart(G). ?- obs(L). ?- gv3(L). */