|
9 | 9 | </head> |
10 | 10 | <body> |
11 | 11 | <script> |
12 | | - |
13 | | - var url = "../data/emptywheel.csv"; |
14 | | - var topics = []; |
15 | | - d3.csv(url, function(error, rawData) { |
| 12 | + |
| 13 | + var fileName = "../data/VIS_papers.tsv"; |
| 14 | + categories = categories = ["Vis","VAST","InfoVis","SciVis"]; |
| 15 | + var topics = categories; |
| 16 | + d3.tsv(fileName, function(error, rawData) { |
16 | 17 | if (error) throw error; |
17 | | - var inputFormat = d3.time.format('%Y-%m-%dT%H:%M:%S'); |
18 | | - var outputFormat = d3.time.format('%b %Y'); |
19 | | - topics = d3.keys(rawData[0]).slice(2, 6); |
20 | | - //Filter and take only dates in 2013 |
21 | | - rawData = rawData.filter(function(d){ |
22 | | - var time = inputFormat.parse(d.time); |
23 | | - var starDate = inputFormat.parse('2013-01-01T00:00:00'); |
24 | | - var endDate = inputFormat.parse('2013-09-01T00:00:00'); |
25 | | - return time >= starDate && time < endDate; |
| 18 | + //Filter |
| 19 | + var startYear = 2011; |
| 20 | + var endYear = 2016; |
| 21 | + if(fileName.indexOf("PopCha")>=0 || fileName.indexOf("Cards_Fries")>=0 || fileName.indexOf("Cards_PC")>=0){ |
| 22 | + startYear = 2007; |
| 23 | + endYear = 2013; |
| 24 | + } |
| 25 | + rawData = rawData.filter(d=>{ |
| 26 | + return d.Year >= startYear && d.Year <= endYear; |
26 | 27 | }); |
27 | | - var data = {}; |
| 28 | + var data={}; |
28 | 29 | d3.map(rawData, function(d, i){ |
29 | | - var date = inputFormat.parse(d.time); |
30 | | - var date = outputFormat(date); |
31 | | - topics.forEach(topic => { |
32 | | - if(!data[date]) data[date] = {}; |
33 | | - data[date][topic] += data[date][topic] ? ('|' +d[topic]): (d[topic]); |
34 | | - }); |
| 30 | + var year = +d["Year"]; |
| 31 | + var topic = d["Conference"]; |
| 32 | + if(!data[year]) data[year] = {}; |
| 33 | + data[year][topic] = (data[year][topic]) ? ((data[year][topic])+";" + d["Author Names"]): (d["Author Names"]); |
35 | 34 | }); |
36 | | - var data = d3.keys(data).map(function(date, i){ |
| 35 | + var data = d3.keys(data).map(function(year, i){ |
37 | 36 | var words = {}; |
38 | 37 | topics.forEach(topic => { |
39 | 38 | var raw = {}; |
40 | | - raw[topic] = data[date][topic].split('|'); |
| 39 | + if(!data[year][topic]) data[year][topic] = ""; |
| 40 | + raw[topic] = data[year][topic].split(";"); |
41 | 41 | //Count word frequencies |
42 | 42 | var counts = raw[topic].reduce(function(obj, word){ |
43 | 43 | if(!obj[word]){ |
|
56 | 56 | }).sort(function(a, b){//sort the terms by frequency |
57 | 57 | return b.frequency-a.frequency; |
58 | 58 | }).filter(function(d){return d.text; })//filter out empty words |
59 | | - .slice(0, 15); |
| 59 | + .slice(0, 45); |
60 | 60 | }); |
61 | 61 | return { |
62 | | - date: date, |
| 62 | + date: year, |
63 | 63 | words: words |
64 | 64 | } |
65 | 65 | }).sort(function(a, b){//sort by date |
66 | | - return outputFormat.parse(a.date) - outputFormat.parse(b.date); |
| 66 | + return a.date - b.date; |
67 | 67 | }); |
68 | 68 | draw(data); |
69 | 69 | }); |
70 | 70 |
|
71 | 71 | function draw(data){ |
72 | | - var width = 800, height = 800; |
| 72 | + var width = 800, height = 500; |
73 | 73 | var ws = d3.layout.wordStream() |
74 | 74 | .size([width, height]) |
75 | 75 | .data(data); |
|
90 | 90 | height: height |
91 | 91 | }); |
92 | 92 | var paths = svg.append('g').attr('transform', 'translate(' + 0 + ',' + 0 + ')'); |
93 | | - boxes.layers = boxes.layers.slice(0, 2); |
| 93 | + // boxes.layers = boxes.layers.slice(0, 2); |
94 | 94 | paths.selectAll('path') |
95 | 95 | .data(boxes.layers) |
96 | 96 | .enter() |
|
104 | 104 | .style('fill', function () { |
105 | 105 | return color(Math.random()); |
106 | 106 | }); |
107 | | - var topics = boxes.topics.slice(0, 2); |
| 107 | + // var topics = boxes.topics.slice(0, 2); |
108 | 108 | topics.forEach(topic=>{ |
109 | 109 | var topicGroup = svg.append('g'); |
110 | 110 | topicGroup.selectAll('g').data(boxes.innerBoxes[topic]).enter() |
|
0 commit comments