topic1 = {
const container = d3.select(DOM.svg(width+margin.left+margin.right,
height+margin.top+margin.bottom))
const wrap = d3.textwrap()
.bounds({height:250, width:450});
wrap.padding(10);
const arcGroup = container
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.attr("font-family", "Montserrat")
const nodes = arcGroup.selectAll("nodes")
.data(graphData.nodes)
.enter().append("circle")
.attr("cx", margin.left+450)
.attr("cy", d => (yScale(d.tag)+50)/1.5)
.attr("r", function(d) {return d.frequency/8;})
.attr("fill", "darkgrey")
.attr("id", d => d.id)
.attr("font-size", 14)
const nodeLabels = arcGroup.selectAll("nodeLabels")
.data(graphData.nodes)
.enter().append("text")
.attr("x",margin.left+450)
.attr("y", d => (yScale(d.tag)+50)/1.5)
.attr("fill","white")
.style("text-anchor","middle")
.style("alignment-baseline","central")
.text(d => d.tag)
const frequency = arcGroup.selectAll("frequency")
.data(graphData.nodes)
.enter().append("text")
.attr("x",margin.left+570)
.attr("y", d => (yScale(d.tag)+50)/1.5)
.attr("fill","firebrick")
.style("text-anchor","middle")
.style("alignment-baseline","central")
.text(d => "# of tags: "+d.frequency)
const ufo_image = arcGroup.selectAll("thumbnails_ufo")
.data(ufo_vids)
.enter().append("image")
.attr("xlink:href", function(d) {return d.thumbnail})
.attr('width', 0)
.attr('height', 150)
.attr("x", d => (xScale_vids_ufo(d.title)/4))
.attr("y", 100)
const ufo_title = arcGroup.selectAll("title_ufo")
.data(ufo_vids)
.enter().append("text")
.attr("x",d => (xScale_vids_ufo(d.title)/4 + 100))
.attr("y", 270)
.style("font", "7px montserrat")
.attr("fill","none")
.style("text-anchor","middle")
.style("alignment-baseline","central")
.text(d => d.title)
const aliens_image = arcGroup.selectAll("thumbnails_aliens")
.data(aliens_vids)
.enter().append("image")
.attr("xlink:href", function(d) {return d.thumbnail})
.attr('width', 0)
.attr('height', 770)
.attr("x", d => (xScale_vids_aliens(d.title)/4))
.attr("y", 100)
const aliens_title = arcGroup.selectAll("title_aliens")
.data(aliens_vids)
.enter().append("text")
.attr("x",d => (xScale_vids_aliens(d.title)/4 + 100))
.attr("y", 580)
.style("font", "7px montserrat")
.attr("fill","none")
.style("text-anchor","middle")
.style("alignment-baseline","central")
.text(d => d.title)
const space_image = arcGroup.selectAll("thumbnails_space")
.data(space_vids)
.enter().append("image")
.attr("xlink:href", function(d) {return d.thumbnail})
.attr('width', 0)
.attr('height', 1400)
.attr("x", d => (xScale_vids_space(d.title)/4))
.attr("y", 100)
const space_title = arcGroup.selectAll("title_space")
.data(space_vids)
.enter().append("text")
.attr("x",d => (xScale_vids_space(d.title)/4 + 100))
.attr("y", 900)
.style("font", "7px montserrat")
.attr("fill","none")
.style("text-anchor","middle")
.style("alignment-baseline","central")
.text(d => d.title)
nodes.on('mouseover', function(d, i) {
d3.select(this).style("fill", "black");
ufo_image
.attr('width', function (ufo_imaged) {
return d.tag == "ufo"? 200 : 0;})
ufo_title
.attr('fill', function (ufo_textd) {
return d.tag == "ufo"? 'black' : 'none';})
aliens_image
.attr('width', function (aliens_imaged) {
return d.tag == "aliens"? 200 : 0;})
aliens_title
.attr('fill', function (aliens_textd) {
return d.tag == "aliens"? 'black' : 'none';})
space_image
.attr('width', function (space_imaged) {
return d.tag == "space"? 200 : 0;})
space_title
.attr('fill', function (aliens_textd) {
return d.tag == "space"? 'black' : 'none';})
});
nodes.on('mouseout', function (d, i) {
nodes.style("fill", "darkgrey");
ufo_image.attr('width', 0);
ufo_title.attr("fill", "none");
aliens_image.attr('width', 0);
aliens_title.attr("fill", "none");
space_image.attr('width', 0);
space_title.attr("fill", "none");
});
return container.node();
}