Skip to content

ToxicRedditNetwork, a web application for visualizing and analyzing user data graphs

License

Notifications You must be signed in to change notification settings

dedovskaya/ToxicRedditNetwork

Repository files navigation

ToxicRedditNetwork

About

ToxicRedditNetwork, a web application for visualizing and analyzing user data graphs is designed to depict user interactions within a network. The graph comprises nodes representing users and edges representing message exchanges. User properties, such as average toxicity score, message count, and average message length, are encoded in the nodes, while edges capture message toxicity scores and lengths. The application offers customization options to modify node and edge visuals based on their properties. Additionally, a clustering feature groups nodes using a force-directed graph algorithm. Our purpose is to provide a user-friendly tool for identifying toxic behavior, understanding communication patterns, and gaining insights into network dynamics through the analysis of user data graphs.

Interface

The web application provides a canvas where the user data graph is rendered, accompanied by a menu featuring options on both sides of the screen. The graph is visually displayed, presenting nodes representing users and edges representing message exchanges between them. The graph is interactive, allowing manipulation for a better understanding of the data.

Image

Interactions

Feature Description
Upload File Upload data from the data folder.
Freeze graph Pause the force simulation by freezing the graph.
Set colormap Choose a colormap from the defined color scheme.
Node color dropdown Select a specific node property for node color.
Node color picker Specify start and end colors for nodes based on property.
Edge color dropdown Choose a property for edge color.
Edge color picker Define start and end colors for edges based on property.
Cluster Type dropdown Choose a specific node property for clustering.
Set clusters Initiate clustering based on chosen value from dropdown.
Node Radius Mode dropdown Select a value to determine the size of the nodes.
Filter Edges dropdown Select property for filtering the edges.
Filter edges sliders Set min and max values for edge properties.

Force Graph

Parameter Description
Gravity X Strength and direction of force along the X-axis.
Gravity Y Strength and direction of force along the Y-axis.
Repulsion Strength Strength of repulsive force between nodes.
Link Strength Determines attractive force between connected nodes.
Friction Controls damping effect on node movement.

Appearance

Setting Description
Show Graph Toggle visibility of the entire graph.
Show Links Choose to show or hide edges/links between nodes.
Show Names Display or hide user names associated with nodes.
Show Tooltips Enable or disable tooltips in the graph visualization.
Link Width Adjust thickness or width of edges/links connecting nodes.
Node Radius Control size of individual nodes representing users.
Node Label Opacity Adjust transparency or opacity of user names on nodes.

To launch the application double click on .html file

Implementation

Crawler

A crawler designed to fetch and analyze data from the Reddit platform. It is stored in /crawler folder. The fetch() method retrieves submissions from a specified subreddit using the PRAW (Python Reddit API Wrapper) library. It iterates through the submissions, extracts relevant information such as submission ID, title, text, and associated user, and adds them to the data structure. The script includes several methods for calculating various metrics and performing data analysis. These methods include toxicity calculation, average user toxicity calculation, and average submission toxicity calculation. These calculations utilize the TextBlob library for sentiment analysis.

Web Application

GraphRenderer.js is responsible for rendering the graph visualization on the web page and providing functionality to update the visualization dynamically in response to user interactions or changes in the underlying data. This component manages the creation of nodes and edges based on the provided graph data, applying visual properties (such as colors, sizes, and labels) to nodes and edges, and rendering them on a canvas.

interactions.js handles user interactions and behaviors within the graph visualization. It includes functions and event handlers for user actions, such as toggling node or edge visibility and triggering specific operations or analysis on the graph.

OpenFile.js manages functionality related to opening and uploading graph data files in the web application.

HTML and CSS files: By double-clicking on the .html file, the user can launch the application.

Screenshots

Screenshot1

Screenshot2

Screenshot3

Screenshot4

Authors

This project is a group work done in Visual Analytics course. Authors:

  • Ekaterina Baikova
  • Alexander Schuc
  • Vishnu Viswambharan
  • Nathaniel Benkö

TUGraz, 2023

About

ToxicRedditNetwork, a web application for visualizing and analyzing user data graphs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published