{"id":19132866,"url":"https://github.com/dthung1602/networkvisualization","last_synced_at":"2025-07-25T15:05:19.559Z","repository":{"id":105192476,"uuid":"210366294","full_name":"dthung1602/NetworkVisualization","owner":"dthung1602","description":"A tool to visualize computer networks","archived":false,"fork":false,"pushed_at":"2019-10-23T03:43:20.000Z","size":18024,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-06T18:15:06.477Z","etag":null,"topics":["igraph","matplotlib","network-visualization","numpy","pyqt5"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dthung1602.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-23T13:45:55.000Z","updated_at":"2022-04-06T08:19:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8a1787e-27d8-47c8-bbd0-3bacaf268c8d","html_url":"https://github.com/dthung1602/NetworkVisualization","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FNetworkVisualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FNetworkVisualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FNetworkVisualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FNetworkVisualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dthung1602","download_url":"https://codeload.github.com/dthung1602/NetworkVisualization/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252741474,"owners_count":21797027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["igraph","matplotlib","network-visualization","numpy","pyqt5"],"created_at":"2024-11-09T06:19:54.570Z","updated_at":"2025-05-06T18:15:11.771Z","avatar_url":"https://github.com/dthung1602.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Network Visualization\n![](https://i.imgur.com/6veSWH9.png)\n## 1. Introduction\n### 1.1 Purpose  \nCommunication networks grow both in quantity and quality. In the past decades, the\namount of communication-enabled devices increased massively while also the required\nquality of networks increased. Thus, monitoring, administration and management of\ncommunication networks has become a challenging task for network providers which\nrequires a state-of-the-art set of tools.\nA first step towards intelligent network management is an adequate monitoring. Due\nto the massive amount of different parameters and attributes of communication networks,\ne.g., performance, online/offline notifications, reliability, robustness, and/or security,\nmonitoring becomes a complex task. One way to support network administrators is\nto use proper visualization methods of network information in order to provide a swift\noverview about possible problems. \n### 1.2 Goal\nAs a first step it is important to identify relevant\nproperties in a communication network\nand derive a model from an actual instance.\nThen, this model is to be used as input to a\ntool that is creating a visualization of the network\nand its properties as output. The major\ntask of this course is to design, implement\nand evaluate this tool and write down the results\nin a scientific report. You will work in\nteams and gain team communication and (selfresponsible)\nmanagement competencies during\nthe project while making intelligent (software\ndesign/implementation) decisions.\n## 2. Functionalities\n### 2.1 Basic Functionalities\n- Open graph: The user can open a graph in .graphml format by clicking on “File → Open” in the menu or using the hotkey “Ctrl+O”.\n-\tSave graph: The user can save the new graph as .graphml file by clicking on “File → Save” in the menu or using the hotkey “Ctrl+S”.\n-\tSave as image: The user can save the current graph as an image (.png or .jpg) by clicking on “File → Save image” in the menu or using the hotkey “Ctrl+Shift+S”\n-\tAdd vertex: The user can add a new vertex by clicking on the “Add vertex” button, then click on the desired position on the graph.\n-\tDelete vertex: The user can delete a vertex by clicking on the “Delete vertex” button, then click on the desired vertex.\n-\tAdd edge: The user can add a new edge by clicking on the “Add edge” button, then click on 2 vertices.\n-\tDelete edge: The user can delete an edge by clicking on the “Delete edge” button, then click on the desired edge.\n-\tDrag vertices: The user can click on a vertex, then drag it to the new position.\n-\tDrag background: The user can drag the background to move the viewport.\n-\tZoom in/out of the graph: The user can scroll the mouse wheel or click on the zoom buttons on the toolbar to adjust the viewport zoom.\n-\tView/edit the attributes of vertices/edges: To view the attributes of a vertex/ an edge, the user can click on it. The attributes will be displayed on the right panel of the app where the user can edit them.\n-\tAdd attributes to vertices/edges: To add new attributes to the graph, the user can click on the “Add new attribute” button on the toolbar, then select the attribute name and whether the attribute should be added to vertices or edges.\n(Note: before adding/deleting a vertex/an edge, edit mode has to be activated by clicking the “Edit” button in the toolbar)\n### 2.2 Check for missing attributes\nWhen importing a graph, we expect its vertices and edges to contain some basic attributes. However, not all graphs satisfy this condition and this is the motivation for this function.\n### 2.3 Geographical view\nThe application provides users a way to visualize the geolocations of the hosts in the network. \n### 2.4 Change graph layout\nIn many cases, the geolocation of the hosts is not very useful but the topology of the network may display many interesting properties. The application can apply different layout algorithms to the network to enhance its understandability and usability.\n### 2.5 Display vertex centrality\nThe application can use color to visualize the centrality of the vertices, with cooler colors for lower centrality and warmer colors for higher centrality.\n### 2.6 Filter edges\nThe graph occasionally contains too many edges which makes the graph hard to be observed. This function provides the user with a proper way to view the desired edges based on their values.\n### 2.7 Find the shortest path\nFinding the shortest path between vertices can help to optimize the performance of the network.\n### 2.8 Find clusters\nFinding clusters of a network provide more insights for users into the particular network, as it groups the separated vertices of the original network into a set of non-overlapping groups that are densely connected internally. This can help to reduce the complexity of monitoring the network if we consider each cluster as a single host.\n### 2.9 Find bottleneck function\nThere are possibilities that a group of hosts is connected to the rest of the network by only a single link (a bottleneck). This may affect the performance of the whole network and should an error happens to the link, the group becomes isolated. The intention of this function is to identify and visualize all bottlenecks in the network.\n### 2.10 Real-time mode\nIn reality, many properties of the network change over time and we wish to visualize those changes. However, since no real-time network data is available, in this prototype we decided to randomize the data to simulate the rapid changes of the real world.\n### 2.11 Export statistical information\nThe Export Statistical Information function is used for summarizing, generating and visualizing information extracted from the graph. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdthung1602%2Fnetworkvisualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdthung1602%2Fnetworkvisualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdthung1602%2Fnetworkvisualization/lists"}