«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Визуализация графика

Визуализация графика

Опубликовано 18 августа 2024 г.
Просматривать:515

Для визуального отображения графа каждой вершине должно быть присвоено местоположение. В предыдущем разделе было описано, как моделировать график с помощью интерфейса Graph, класса AbstractGraph и класса UnweightedGraph. В этом разделе обсуждается, как отображать графики графически. Чтобы отобразить граф, вам необходимо знать, где отображается каждая вершина, и имя каждой вершины. Чтобы обеспечить возможность отображения графика, мы определяем интерфейс с именем Displayable, который имеет методы для получения координат x- и y- и их имен, а также сделайте вершины экземплярами Displayable в приведенном ниже коде.

Graph Visualization

Граф с отображаемыми вершинами теперь можно отображать на панели с именем GraphView, как показано в коде ниже.

Graph Visualization

Чтобы отобразить график на панели, просто создайте экземпляр GraphView, передав график в качестве аргумента в конструкторе (строка 9). Класс вершины графа должен реализовывать интерфейс Displayable для отображения вершин (строки 13–22). Для каждого индекса вершины i вызов graph.getNeighbors(i) возвращает список смежности (строка 26). В этом списке вы можете найти все вершины, примыкающие к i и провести линию, соединяющую i с соседней с ней вершиной (строки 27–34).

Graph Visualization

Приведенный ниже код представляет собой пример отображения графика, показанного на рисунке выше, как показано на рисунке ниже.

Graph Visualization

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class DisplayUSMap extends Application {
    @Override // Override the start method in the Application class
    public void start(Stage primaryStage) {
        City[] vertices = {new City("Seattle", 75, 50),
                new City("San Francisco", 50, 210),
                new City("Los Angeles", 75, 275), new City("Denver", 275, 175),
                new City("Kansas City", 400, 245),
                new City("Chicago", 450, 100), new City("Boston", 700, 80),
                new City("New York", 675, 120), new City("Atlanta", 575, 295),
                new City("Miami", 600, 400), new City("Dallas", 408, 325),
                new City("Houston", 450, 360)};

        // Edge array for graph
        int[][] edges = {
                {0, 1}, {0, 3}, {0, 5}, {1, 0}, {1, 2}, {1, 3},
                {2, 1}, {2, 3}, {2, 4}, {2, 10},
                {3, 0}, {3, 1}, {3, 2}, {3, 4}, {3, 5},
                {4, 2}, {4, 3}, {4, 5}, {4, 7}, {4, 8}, {4, 10},
                {5, 0}, {5, 3}, {5, 4}, {5, 6}, {5, 7},
                {6, 5}, {6, 7}, {7, 4}, {7, 5}, {7, 6}, {7, 8},
                {8, 4}, {8, 7}, {8, 9}, {8, 10}, {8, 11},
                {9, 8}, {9, 11}, {10, 2}, {10, 4}, {10, 8}, {10, 11},
                {11, 8}, {11, 9}, {11, 10}
        };

        Graph graph = new UnweightedGraph(vertices, edges);

        // Create a scene and place it in the stage
        Scene scene = new Scene(new GraphView(graph), 750, 450);
        primaryStage.setTitle("DisplayUSMap"); // Set the stage title
        primaryStage.setScene(scene); // Place the scene in the stage
        primaryStage.show(); // Display the stage
    }

    public static void main(String[] args) {
        Application.launch(args);
    }

    static class City implements Displayable {
        private int x, y;
        private String name;

        City(String name, int x, int y) {
            this.name = name;
            this.x = x;
            this.y = y;
        }

        @Override
        public int getX() {
            return x;
        }

        @Override
        public int getY() {
            return y;
        }

        @Override
        public String getName() {
            return name;
        }
    }
}

Класс City определен для моделирования вершин с их координатами и именами (строки 39–63). Программа создает граф с вершинами типа Город (строка 30). Поскольку City реализует Displayable, объект GraphView, созданный для графика, отображает график на панели (строка 33).

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/paulike/graph-visualization-3p9l?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3