1- /* eslint-disable */
2-
3- ( function ( ) {
4- let env = muze ( ) ;
5- let DataTable = muze . DataModel ,
6- share = muze . Operators . share ,
7- html = muze . Operators . html ;
8-
9- d3 . csv ( '../../../data/coffee.csv' , ( data ) => {
10- const jsonData = data ,
11- schema = [ {
12- name : 'Market' ,
13- type : 'dimension'
14- } ,
15- {
16- name : 'Product' ,
17- type : 'dimension'
18- } ,
19- {
20- name : 'Product Type' ,
21- type : 'dimension'
22- } ,
23-
24- {
25- name : 'Revenue' ,
26- type : 'measure'
27- } ,
28- {
29- name : 'Expense' ,
30- type : 'measure'
31- } ,
32- {
33- name : 'Profit' ,
34- type : 'measure' ,
35- } ,
36- {
37- name : 'Order Count' ,
38- type : 'measure'
39- } ,
40- ] ;
41- let rootData = new DataTable ( jsonData , schema ) ;
42-
43-
44- rootData = rootData . groupBy ( [ 'Market' , 'Product Type' , 'Product' ] , {
45-
46- } ) ;
47-
48- env = env . data ( rootData ) . minUnitHeight ( 40 ) . minUnitWidth ( 40 ) ;
49- let mountPoint = document . getElementById ( 'chart' ) ;
50- window . canvas = env . canvas ( ) ;
51- let canvas2 = env . canvas ( ) ;
52- let canvas3 = env . canvas ( ) ;
53- let rows = [ [ 'Market' , 'Product Type' , 'Product' ] ] ,
54- columns = [ [ 'Revenue' , 'Expense' , 'Profit' , 'Order Count' ] , [ ] ] ;
55- canvas = canvas
56- . rows ( rows )
57- . columns ( columns )
58- . data ( rootData )
59- // .detail(['Market', 'Product Type', 'Product'])
60- . minUnitHeight ( 10 )
61- . width ( 500 )
62- . height ( 2000 )
63- . config ( {
64- border :{
65- width : 2 ,
66- // showRowBorders: false,
67- // showColBorders:false,
68- // showValueBorders: {
69- // top: false,
70- // bottom: true,
71- // left: true,
72- // right: false
73- // }
74- } ,
75- axes :{
76- x :{
77- showAxisName : true ,
78- tickFormat : ( d ) => {
79- if ( d < 1000 ) return d ;
80- if ( d > 1000 && d < 1000000 ) return `${ d / 1000 } K`
81- if ( d > 1000000 ) return `${ d / 1000 } M`
82- return d
83- }
84-
85-
86- } , y :{
87- // showAxisName: true,
88- // name: 'Acceleration per year',
89- axisNamePadding : 12
90- }
91- }
92- } )
93-
94- canvas . legend ( {
95- align :'horizontal' ,
96- title : [ '' ] ,
97- item :{
98- text :{
99- position :'right'
100- }
101- } ,
102- steps : 6
103- } )
104-
105- . title ( 'The Muze Project' , { position : "top" , align : "left" , } )
106- . subtitle ( 'Composable visualisations with a data first approach' , { position : "top" , align : "left" } )
107- . mount ( document . getElementsByTagName ( 'body' ) [ 0 ] ) ;
108-
109- } )
110-
111- } ) ( )
1+ d3 . csv ( '/data/coffee.csv' , function ( data ) {
2+ // load data and schema from url
3+ var schema = [ {
4+ "name" : "Market" ,
5+ "type" : "dimension"
6+ } , {
7+ "name" : "Product" ,
8+ "type" : "dimension"
9+ } , {
10+ "name" : "Product Type" ,
11+ "type" : "dimension"
12+ } , {
13+ "name" : "Revenue" ,
14+ "type" : "measure"
15+ } , {
16+ "name" : "Expense" ,
17+ "type" : "measure"
18+ } , {
19+ "name" : "Profit" ,
20+ "type" : "measure"
21+ } , {
22+ "name" : "Order Count" ,
23+ "type" : "measure"
24+ } ] ;
25+ var env = window . muze ( ) ;
26+ var DataModel = window . muze . DataModel ;
27+ var rootData = new DataModel ( data , schema ) ;
28+ // console.log('-----------------> 1 ', rootData.getData());
29+ /* data and schema is global */
30+ var canvas = env . canvas ( ) ;
31+ canvas . rows ( [ 'Market' , 'Product Type' ] ) . columns ( [ [ 'Revenue' , 'Expense' ] , [ 'Revenue' , 'Expense' ] ] ) . data ( rootData ) . width ( 650 ) . height ( 800 ) . config ( {
32+ showHeaders : true , /* show the headers of fields used in faceting */
33+ facetConfig : { rows : { verticalAlign : 'middle' } } , /* dimensional values are placed in middle */
34+ axes : {
35+ y : { showAxisName : false } , /* dont show axis name as we are showing headers, its redundant information */
36+ x : {
37+ tickFormat : function tickFormat ( d ) {
38+ if ( d < 1000 ) return d ;
39+ if ( d > 1000 && d < 1000000 ) return d / 1000 + "K" ;
40+ if ( d > 1000000 ) return d / 1000 + "M" ;
41+ return d ;
42+ }
43+ }
44+ }
45+ } )
46+ . title ( 'Visual Crosstab' )
47+ . mount ( '#chart' )
48+ } ) ;
0 commit comments