Steps to reproduce: 1. Add a chart to a form 2. Add a bar series with some data 3. Set the gapLength of the horizontal axis to 0 Run the project and resize the chart. You will see that the gaps between bars are inconsistent.
Currently, ScatterSeries are able to use NumericAxes only. A good improvement will be to allow using DateTimeContinuousAxes as well.
Steps to reproduce: 1. Add a RadChartView to a form. 2. Add a LassoZoomController to the chart 3. Run the project and start scrolling the mouse wheel. You will see that the chart is not zoomed in our out. If you click on the chart the mouse wheel zooms as expected. WORKAROUND: Set the focus to the chart element: this.radChartView1.Behavior.ItemCapture = this.radChartView1.ChartElement; this.radChartView1.ChartElement.Focus();
To reproduce: public partial class Form1 : Form { private BindingList<MyData> data; public Form1() { InitializeComponent(); LoadDatas(); MyBarSeries bars = new MyBarSeries(); bars.DataSource = data; bars.ValueMember = "Montant"; bars.CategoryMember = "Month"; bars.LegendTitle = "My series of MyData"; this.radChartView1.ShowLegend = true; this.radChartView1.Series.Add(bars); } private void LoadDatas() { data = new BindingList<MyData>(); data.Add(new MyData(20, "janv", 1)); data.Add(new MyData(50, "fev", 2)); data.Add(new MyData(30, "mars", 3)); data.Add(new MyData(25, "avril", 4)); data.Add(new MyData(40, "mai", 5)); data.Add(new MyData(80, "juin", 6)); data.Add(new MyData(20, "juil", 7)); } public class MyData { public int Montant { get; set; } public string Month { get; set; } public double NumMonth { get; set; } public MyData(int montant, string month, double numMonth) { this.Montant = montant; this.Month = month; this.NumMonth = numMonth; } } public class MyBarSeries : BarSeries { } } Resolution: When you inherit from a serie, the original control themes are not automatically inherited. You need to override the ThemeRole property. Here is the code snippet: public class MyBarSeries : BarSeries { public override string ThemeRole { get { return typeof(BarSeries).Name; } } }
Add Bubble series support for RadChartView
The lasso controller should zoom vertically as well.
With significant number of points in pie series and with very small values as data points, the default chart strategy for positioning smart labels overlaps the values. Note: the smart labels overlapping can be reproduced with DonutSeries as well.
Add vertical cursors for Line series that stay in place unless the user drags them. Each cursor should select the data points that covers. The cursor should allow setting its position programmatically.
I'm using version 2012.3.1310.40 I use ChartView to create a pie chart with the following data Assets 2248550.22 Income 19748.67 Equity 2228253.95 Liability 547.60 So, when the chart displays, the Percentage is set as follows: Assets 50% Income 0% Equity 50% Liability 0% I notice when the percentage is 0% for any data, the pie chart shows "0%" near the chart title (please see attachment). Or if the calculated data returns 0, it doesn't show any percentage on the chart, but it will shows "NaN" near the title as well. (please see attachment).
SmartLabelsController - PieTwoLabelColumnsStrategy throws exception if the series has two or more DataPoints with value "0"; Code to reproduce: RadChartView pieChart = new RadChartView(); pieChart.AreaType = ChartAreaType.Pie;
RadChartView - Palette of the Series should be with higher priority than Area.View.Palette.
To reproduce: Create a RadChartView, add a ZoomController and set the ShowGrid property to true: ScatterSeries series = new ScatterSeries(); series.DataPoints.Add(new ScatterDataPoint(5, 5)); series.DataPoints.Add(new ScatterDataPoint(4, 2)); series.DataPoints.Add(new ScatterDataPoint(-1, 3)); series.DataPoints.Add(new ScatterDataPoint(11, 4)); chart.Series.Add(series); chart.Controllers.Add(new LassoZoomController()); chart.ShowGrid = true; You will see that the grid is painted outside of the chart area where the points are
Adding a series with null values and combine mode Stack or Stack100 results in an exception.
To reproduce: Use the following code with RadChartView: this.Chart.Series.Add(new LineSeries()); for (int i = 0; i < 50; i++) { if (i == 10) { this.Chart.Series[0].DataPoints.Add(new CategoricalDataPoint(1)); continue; } this.Chart.Series[0].DataPoints.Add(new CategoricalDataPoint(0)); } this.Chart.ShowGrid = true; You will see that the point will not be rendered correctly and will be taller than 1.
Steps to reproduce. 1. Add a chart view to a form. 2. Create a series and add several data points. For categories use double values in the range 10 - 20 3. Create a second series and this time for categories use double values in the same range without duplication. 4. Assign one linear and one categorical axis to the series and add them to the char view. 5. Run the project and you will see that the categories from the second series are next to those from the first series, while they should be combined according their values.
Currently the PieRenderer class is private and cannot be inherited nor extended. All other renderer classes are public.
Steps to reproduce: 1. Clear all series and axes from a chart 2. Create new axes and series and databind the series 3. Add the new series and axes to the chart 4. Repeat the steps above multiple times
To reproduce: Have a RadButton and a RadChartView on a form. On button click use the following code: private void GenerateSeries() { LineSeries lineSeries = new LineSeries(); lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan") { Label = "January" }); lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr")); lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul")); lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct")); lineSeries.LegendTitle = "Line 1 "; this.Chart.Series.Add(lineSeries); lineSeries.BackColor = Color.Black; lineSeries.PointSize = new SizeF(15, 15); LineSeries lineSeries2 = new LineSeries(); lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Jan")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Apr")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "Jul")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(22, "Oct")); lineSeries2.LegendTitle = "Line 2 "; this.Chart.Series.Add(lineSeries2); } void RadButton_Click(object sender, EventArgs e) { this.Chart.Series.Clear(); this.GenerateSeries(); } You will notice that the memory will not decrease after a few presses of the button. Workaround: Set the Provider of the LegendElement to null: private void GenerateSeries() { this.Chart.ChartElement.LegendElement.Provider = null; LineSeries lineSeries = new LineSeries(); lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan") { Label = "January" }); lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr")); lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul")); lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct")); lineSeries.LegendTitle = "Line 1 "; this.Chart.Series.Add(lineSeries); lineSeries.BackColor = Color.Black; lineSeries.PointSize = new SizeF(15, 15); LineSeries lineSeries2 = new LineSeries(); lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Jan")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Apr")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "Jul")); lineSeries2.DataPoints.Add(new CategoricalDataPoint(22, "Oct")); lineSeries2.LegendTitle = "Line 2 "; this.Chart.Series.Add(lineSeries2); } void Button_Click(object sender, EventArgs e) { this.Chart.Series.Clear(); this.GenerateSeries(); }
RadChartView should have empty values support just like RadChart had it.