3 votes

Comment Ontotext GraphDB attribue-t-il les couleurs dans Visual Graph ?

J'ai essayé de créer des visualisations de graphes en utilisant Ontotext GraphDB. J'aimerais que les couleurs soient cohérentes entre les différentes visualisations que je fais des mêmes données. Je comprends que la coloration est basée sur le type, mais elle ne semble pas cohérente. Par exemple, si je crée un graphique visuel avec uniquement des nœuds de type A la couleur attribuée aux nœuds peut être rouge, mais si je crée un graphique visuel avec des nœuds de type A et tapez B alors il n'apparaît pas que la couleur des nœuds de type A sont garantis d'être encore rouges.

J'aimerais comprendre le mécanisme par lequel le système de visualisation attribue des couleurs en fonction des types.

Par ailleurs, je rencontre également un problème avec les réseaux de grande taille : les nœuds du graphique deviennent plus grands que la taille de la fenêtre, de sorte que je ne peux pas voir tous les nœuds à la fois, même si je fais un zoom arrière complet.

5voto

Konstantin Petrov Points 316

Les couleurs sont basées sur le type du nœud et les couleurs des types sont générées à chaque fois (nous ne les conservons pas). Malheureusement, vous ne pouvez pas spécifier les couleurs des nœuds de Visual Graph dans GraphDB Workbench sans toucher au code source, vous devez donc cloner GraphDB Workbench depuis github et définir les couleurs pour vos types dans le code source, mais je vais vous guider pour le faire, c'est très simple.

Cloner ou forker le projet à partir d'ici https://github.com/Ontotext-AD/graphdb-workbench

(il y a un bon guide sur la façon d'exécuter votre workbench contre une GraphDB en cours d'exécution)

Ouvrez src/js/angular/graphexplore/controllers/graphs-visualizations.controller.js et trouvez la fonction $scope.getColor.

Vous pouvez y spécifier vos couleurs et vos types, c'est-à-dire

$scope.getColor = function (type) {
    if (type === 'http://myBarType') {
        return "#6495ED"
    }
    if (type === 'http://myFooType')
    {
        return "#90EE90";
    }
    if (angular.isUndefined(type2color[type])) {
        type2color[type] = colorIndex;
        colorIndex++;
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X