A dynamic, interactive radar chart visualization tool built with D3.js. This project provides a web-based interface for visualizing hierarchical data in a circular layout with concentric rings, making it ideal for displaying nested categorical data with associated values.
- Hierarchical Data Visualization: Display data in three concentric rings representing different levels of hierarchy (Bereich, Aspekt, Frage)
- Dynamic Text Sizing: Automatically adjusts text size to fit within segments
- Interactive Elements: Hover effects and dynamic updates
- Data Import: Support for CSV file import with specific formatting
- SVG Export: Export the visualization as an SVG file
- Responsive Design: Adapts to different screen sizes
- Median Value Display: Shows median values with color-coded indicators
-
Clone the repository:
git clone https://github.com/danielfrey63/radar-chart.git
-
Install dependencies:
cd radar-chart npm install -
Start the server:
npm start
-
Open your browser and navigate to
http://localhost:3000
The visualization expects CSV files with the following columns:
Bereich: Top-level categoryAspekt: Mid-level categoryFrage: Detailed question or metricWert: Numerical value (0-9)
Example:
Bereich,Aspekt,Frage,Wert
"Category A","Subcategory 1","Metric 1",7
-
Load Data:
- Click "Load CSV" to select and load a CSV file
-
View Visualization:
- Outer ring: Bereich (main categories)
- Middle ring: Aspekt (sub-categories)
- Inner ring: Frage (individual metrics)
- Center: Radar chart showing values
-
Export:
- Click "Download SVG" to save the visualization as an SVG file
-
Reset:
- Click "Reset" to return to the default visualization
- Frontend: HTML5, D3.js for visualization
- Backend: Node.js with Express
- Data Processing: CSV parsing with csv-parse
server.js: Express server handling file uploads and data processingradar-chart.js: Main visualization logic using D3.jsindex.html: Web interface
-
Outer Rings:
- Three concentric rings showing hierarchical data
- Dynamic text sizing based on segment size
- Color-coded segments
-
Radar Chart:
- Central visualization of numerical values
- Median indicators
- Background coloring matching outer ring segments
- Node.js
- Express (^4.18.2)
- D3.js (^7.8.5)
- csv-parse (^5.5.3)
Tested and supported in modern browsers:
- Chrome (recommended)
- Firefox
- Edge
- Safari
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- 1.5.0: Improved text rendering and aspect count calculation
- 1.0.0: Initial release
- D3.js community for the visualization library
- Contributors and users who provided feedback and suggestions
