1
|
1 |
$(function() { |
|
2 |
|
|
3 |
var colorset = ["#1f77b4 ", "#aec7e8 ", "#ff7f0e ", "#ffbb78 ", "#2ca02c ", "#98df8a ", "#d62728 ", "#ff9896 ", "#9467bd ", "#c5b0d5 ", "#8c564b ", "#c49c94 ", "#e377c2 ", "#f7b6d2 ", "#7f7f7f ", "#c7c7c7 ", "#bcbd22 ", "#dbdb8d ", "#17becf ", "#9edae5"] |
|
4 |
|
|
5 |
$.getJSON("fakedata/data.json", function(data) { |
|
6 |
$(".topwords-block").html(data.top_words.reduce(function(mem, d) { |
|
7 |
return mem + '<li>' + d.word + '</li>' |
|
8 |
},"")); |
|
9 |
|
|
10 |
var nmmso = data.segments.length; |
|
11 |
|
|
12 |
data.topics.forEach(function(topic) { |
|
13 |
topic.score = 0; |
|
14 |
topic.curve = []; |
|
15 |
for (var i = 0; i < nmmso; i++) { |
|
16 |
topic.curve.push(0); |
|
17 |
} |
|
18 |
}); |
|
19 |
|
|
20 |
data.segments.forEach(function(mmso, i) { |
|
21 |
mmso.topics.forEach(function(t) { |
|
22 |
var score = t.weight * mmso.tweet_count; |
|
23 |
data.topics[t.topic].curve[i] = score; |
|
24 |
data.topics[t.topic].score += score; |
|
25 |
}); |
|
26 |
}); |
|
27 |
|
|
28 |
data.topics = data.topics.sort(function(a,b) { |
|
29 |
return b.score - a.score; |
|
30 |
}); |
|
31 |
|
|
32 |
var topicHtmls = ["", "", ""] |
|
33 |
|
|
34 |
data.topics.forEach(function(topic,i) { |
|
35 |
var li = '<li class="shadow-block topic" style="background:' |
|
36 |
+ colorset[topic.index % colorset.length] |
|
37 |
+ '" data-topic-id="' |
|
38 |
+ topic.index |
|
39 |
+ '"><ul class="topic-words">' |
|
40 |
+ topic.words.reduce(function(memwords, word) { |
|
41 |
return memwords + '<li>' + word.word + '</li>'; |
|
42 |
},"") |
|
43 |
+ '</ul></li>'; |
|
44 |
topicHtmls[i % 3] += li; |
|
45 |
}); |
|
46 |
console.log(topicHtmls); |
|
47 |
$(".topics-block").html(topicHtmls.reduce(function(mem,html) { |
|
48 |
return mem + '<ul class="topic-column">' + html + '</ul>' |
|
49 |
},"")); |
|
50 |
|
|
51 |
$(".topic").mouseenter(function() { |
|
52 |
var datavizheight = $(".start-dataviz").height(), |
|
53 |
scale = datavizheight / data.duration, |
|
54 |
topicid = parseInt($(this).attr("data-topic-id")), |
|
55 |
topic; |
|
56 |
for (var i = 0; i < data.topics.length; i++) { |
|
57 |
if (data.topics[i].index == topicid) { |
|
58 |
topic = data.topics[i]; |
|
59 |
break; |
|
60 |
} |
|
61 |
} |
|
62 |
if (!topic) { |
|
63 |
return; |
|
64 |
} |
|
65 |
var color = colorset[topicid % colorset.length]; |
|
66 |
$(".start-dataviz").html(topic.curve.reduce(function(mem, c, i) { |
|
67 |
if (!c) { |
|
68 |
return mem; |
|
69 |
} else { |
|
70 |
var mmso = data.segments[i]; |
|
71 |
return mem + '<div style="position: absolute; background: ' |
|
72 |
+ color |
|
73 |
+'; opacity: ' |
|
74 |
+ c |
|
75 |
+'; left: 0; ; top: ' |
|
76 |
+ scale * mmso.start |
|
77 |
+'px; height: ' |
|
78 |
+ scale * mmso.duration |
|
79 |
+'px; width: 266px"></div>' |
|
80 |
} |
|
81 |
},"")); |
|
82 |
})//.mouseleave(function() {$(".start-dataviz").empty(); }); |
|
83 |
|
|
84 |
}); |
|
85 |
}); |