Siticone Radar Chart
The SiticoneRadarChart (also known as a spider chart) is a graphical method for displaying multivariate data in the form of a two-dimensional chart of three or more quantitative variables represented on axes starting from the same point. It is excellent for comparing features of different items.
Data Binding
The chart supports both manual data entry (via list properties) and binding to a data source (DataTable, List, etc.).
| Property | Type | Description & Usage Example |
|---|---|---|
DataSource |
object |
chart.DataSource = myDataTable;
The source of the data. Accepts DataTable, List<T>, or IEnumerable.
|
LabelMember |
string | chart.LabelMember = "SkillName"; The property name for the labels of each axis (spoke). |
ValueMember |
string | chart.ValueMember = "Score"; The property name for the numeric values to be plotted. |
Data |
List<double> | chart.Data = new List<double> { 80, 60, 90 }; Manually sets the data values if not using DataSource. |
Labels |
List<string> | chart.Labels = new List<string> { "A", "B", "C" }; Manually sets the labels if not using DataSource. |
Appearance & Theming
Customize the web, data area, and overall style.
| Property | Type | Description & Usage Example |
|---|---|---|
Theme |
SiticoneRadarThemePreset |
chart.Theme = SiticoneRadarThemePreset.ForestGreen;
Applies a preset color scheme. Options include OceanBlue, CrimsonRed, RoyalPurple, etc.
|
RangeCount |
int | chart.RangeCount = 5; The number of concentric grid lines (webs) to draw. |
MaxValue |
double | chart.MaxValue = 100; The value representing the outermost edge of the chart. |
DataAreaColor |
Color | chart.DataAreaColor = Color.FromArgb(100, 0, 255, 0); The fill color of the polygon formed by the data points. Supports transparency. |
DataLineThickness |
float | chart.DataLineThickness = 3f; The thickness of the line connecting data points. |
ShowDataPoints |
bool | chart.ShowDataPoints = true; Toggles the visibility of circular markers at each vertex. |
Behavior & Interaction
Control animations and user feedback.
| Property | Type | Description & Usage Example |
|---|---|---|
EnableAnimations |
bool | chart.EnableAnimations = true; If true, the data polygon "grows" from the center when loaded. |
EnableTooltips |
bool | chart.EnableTooltips = true; Shows a tooltip with the axis label and value when hovering over a point. |
Public Methods
// Forces the chart to process the DataSource and render the polygon.
// Call this after setting the DataSource or changing mapping properties.
radarChart.DataBind();
// Populates the chart with dummy data (e.g. RPG stats).
// Useful for design-time visualization.
radarChart.GenerateSampleData();
Events
Respond to user interaction with data points.
// 1. PointClick Event
// Fires when a user clicks on a data point (vertex).
chart.PointClick += (s, e) =>
{
MessageBox.Show($"Skill: {e.Label}\nScore: {e.Value}");
};
// 2. PointHover Event
// Fires when the mouse pointer moves over a data point.
chart.PointHover += (s, e) =>
{
lblStatus.Text = $"Evaluating: {e.Label}";
};
// 3. DataChanged Event
// Fires whenever the internal data set is updated.
chart.DataChanged += (s, e) =>
{
Console.WriteLine("Chart data updated.");
};
Detailed Usage Examples
Example 1: Skill Assessment (DataTable)
Visualizing employee skills or character stats.
private void LoadSkillData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Skill", typeof(string));
dt.Columns.Add("Level", typeof(double));
dt.Rows.Add("Coding", 90);
dt.Rows.Add("Design", 75);
dt.Rows.Add("Communication", 85);
dt.Rows.Add("Management", 60);
dt.Rows.Add("Testing", 80);
radarChart.DataSource = dt;
radarChart.LabelMember = "Skill";
radarChart.ValueMember = "Level";
// Styling
radarChart.Theme = SiticoneRadarThemePreset.RoyalPurple;
radarChart.MaxValue = 100;
radarChart.DataBind();
}
Example 2: Manual Data Entry
Populating the chart directly without a data source.
private void LoadManualData()
{
radarChart.Labels = new List<string> { "N", "NE", "E", "SE", "S", "SW", "W", "NW" };
radarChart.Data = new List<double> { 10, 15, 20, 15, 10, 5, 8, 5 };
radarChart.Theme = SiticoneRadarThemePreset.OceanBlue;
radarChart.MaxValue = 25;
radarChart.RangeCount = 5;
// No DataBind() needed for manual list assignment
}
Enumerations
public enum SiticoneRadarThemePreset
{
Custom,
OceanBlue,
ForestGreen,
SunsetOrange,
RoyalPurple,
CharcoalGray,
CrimsonRed,
Goldenrod,
SkyBlue,
// ... and many more
}