From 5bfc20a9c8e610b4f48f58aefac4a6aa4e82325b Mon Sep 17 00:00:00 2001
From: Merle Stahl <merle.stahl@studium.uni-hamburg.de>
Date: Tue, 9 Nov 2021 20:03:46 +0100
Subject: [PATCH] Grouping

---
 Output/ToDo.txt   |  9 +++++++++
 Output/index.html | 25 ++++++++++++++++++++-----
 2 files changed, 29 insertions(+), 5 deletions(-)
 create mode 100644 Output/ToDo.txt

diff --git a/Output/ToDo.txt b/Output/ToDo.txt
new file mode 100644
index 0000000..9dad2d6
--- /dev/null
+++ b/Output/ToDo.txt
@@ -0,0 +1,9 @@
+TO-DO:
+- Hovertext in Textbox beim Anklicken (?)
+- Schnittstelle (Json)
+- 3 Schichten im Graph (?)
+- Gruppen mit Farben
+- allgemeines Design
+- Knoten ziehen
+- Rein- und Rauszoomen (?)
+- Knopf zum Zurücksetzen
diff --git a/Output/index.html b/Output/index.html
index 23ddb58..09662f3 100644
--- a/Output/index.html
+++ b/Output/index.html
@@ -19,13 +19,22 @@
 <script src="https://d3js.org/d3-selection-multi.v1.js"></script>
 
 <script type="text/javascript">
-    var colors = d3.scaleOrdinal(d3.schemeCategory10);
+//    var colors = d3.scaleOrdinal(d3.schemeCategory10);
+// Farbgruppen
+    var color = d3.scaleOrdinal()
+    .domain(["citing", "input", "cited"])
+    .range([ "#F8766D", "#00BA38", "#619CFF"])
+
+    var x = d3.scaleOrdinal()
+    .domain(["citing", "input", "cited"])
+    .range([50, 200, 340])
 
     var svg = d3.select("svg"),
         width = +svg.attr("width"),
         height = +svg.attr("height"),
         node,
-        link;
+        link,
+        groups;
         r=5;
 
     svg.append('defs').append('marker')//arrowhead
@@ -48,7 +57,8 @@
         .force("link", d3.forceLink().id(function (d) { return d.doi; }).distance(100).strength(1))
         .force("collide", d3.forceCollide(r+35))
         .force("charge", d3.forceManyBody().strength(-30))
-        .force("center", d3.forceCenter(width / 2, height / 2));
+        .force("center", d3.forceCenter(width / 2, height / 2))
+        .force("x", d3.forceX().strength(0.5).x( function(d){ return x(d.group) } ));
 
     d3.json("data.json", function (error, graph) {
         if (error) throw error;
@@ -109,15 +119,20 @@
                     .on("start", dragstarted)
                     .on("drag", dragged)
                     //.on("end", dragended)
+            //.style("fill", function(d){ return color(d.group)})
             );
+        //node.append("group")
+        //    .text(function (d) {return d.group;})
+
+        //groups = d3.group(node, d => d.group)
 
 
 var toRemove;
         node.append("circle")
             .attr("r", r)
             .attr("class", "circle")
-            .style("fill", function (d, i) {return colors(i);})
-
+            //.style("fill", function (d, i) {return colors(i);})
+            .style("fill", function(d){ return color(d.group)})
 
             .on('click', function() {
                 if(toRemove){
-- 
GitLab