diff --git a/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.cpp b/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.cpp
index 78d886b2151afe768bb3b2416b83d45e4a0c4c0d..63440caa6fefd925d27c544885ab0bb5f53d5373 100644
--- a/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.cpp
+++ b/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.cpp
@@ -215,8 +215,8 @@ void GraphVisualizerWidget::addEdge(const std::string& node1, const std::string&
     ui.tableWidgetEdges->setItem(row,1,new QTableWidgetItem{QString::fromStdString(node2)});
     //debug layer will be done later
     //scene
-    auto graphicsItem= scene->addLine(node1dat.pos->x,node1dat.pos->y,
-                                      node2dat.pos->x,node2dat.pos->y);
+    auto graphicsItem= scene->addLine(node1dat.pos->x,-node1dat.pos->y,
+                                      node2dat.pos->x,-node2dat.pos->y);
     graphicsItem->setToolTip(QString{"Edge:"}+QString::fromStdString(node1)+QChar{2194}+QString::fromStdString(node2));
     //data
     EdgeData data{graphicsItem,row,false,false};
@@ -240,7 +240,7 @@ void GraphVisualizerWidget::addNode(const ::armarx::FramedVector3BasePtr& node,
         ui.tableWidgetNodes->setItem(oldNode.tableWidgetNodesIndex,2,new QTableWidgetItem{QString::number(node->y)});
         ui.tableWidgetNodes->setItem(oldNode.tableWidgetNodesIndex,3,new QTableWidgetItem{QString::number(node->z)});
         //scene
-        oldNode.graphicsItem->setPos(node->x,node->y);
+        oldNode.graphicsItem->setPos(node->x,-node->y);
         //data
         ::armarx::Vector3Ptr pos{new ::armarx::Vector3{Eigen::Vector3f{node->x,node->y,node->z}}};
 
@@ -257,7 +257,7 @@ void GraphVisualizerWidget::addNode(const ::armarx::FramedVector3BasePtr& node,
         ui.tableWidgetNodes->setItem(row,2,new QTableWidgetItem{QString::number(node->y)});
         ui.tableWidgetNodes->setItem(row,3,new QTableWidgetItem{QString::number(node->z)});
         //scene
-        auto graphicsItem= scene->addEllipse(node->x,node->y,0,0);
+        auto graphicsItem= scene->addEllipse(node->x,-node->y,0,0);
         graphicsItem->setZValue(std::numeric_limits<qreal>::max());
         graphicsItem->setToolTip(QString{"Node:"}+QString::fromStdString(node->frame));
 
@@ -382,7 +382,7 @@ void GraphVisualizerWidget::updateNode(const NodeId& id)
     data.graphicsItem->setPen(QPen{qColor});
     data.graphicsItem->setBrush(QBrush{qColor});
     data.graphicsItem->setRect(data.pos->x-lineWidth*SCENE_NODES_SCALE_FACTOR/2,
-                               data.pos->y-lineWidth*SCENE_NODES_SCALE_FACTOR/2,
+                               -data.pos->y-lineWidth*SCENE_NODES_SCALE_FACTOR/2,
                                lineWidth*SCENE_NODES_SCALE_FACTOR,
                                lineWidth*SCENE_NODES_SCALE_FACTOR);
     //table
diff --git a/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.h b/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.h
index e55e5a9079b7d123ee222f4bcd1401214d7e7075..638bb51213af342f69a9ed4e8abce9e59e4cd449 100644
--- a/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.h
+++ b/source/RobotAPI/gui_plugins/GraphVisualizerPlugin/GraphVisualizerGuiPlugin.h
@@ -287,6 +287,10 @@ namespace armarx
 
         /**
          * @brief The scene displayed in the widget.
+         *
+         * For y coordinates -pos->y is used to mirror the scene on the y axis.
+         * If pos->y would be used the graph displayed in the scene would not
+         * match the graph drawn to the debug layer.
          */
         QPointer<QGraphicsScene> scene;