19 Answers, 1 is accepted
RadChart is our current official charting offering that allows you to visualize interactive, rich, animated charts that enable the end users to analyze complex data. This control has been around for quite some time now and provides rich and mature functionality that covers a large spectrum of user case scenarios.
On the other hand, RadChartView (released as a BETA version with the Q3 2011) is a control that addresses some of the limitations and deficiencies that we have identified in the RadChart implementation over the years (we chose to implement a separate control in order not to break backwards compatibility).
Here are some of the most important highlights:
- Performance: exceptional performance and intuitive and easy-to-use model were some of the major tasks we have set for this new control.
- We have separated the chart into several layers, where the core one is totally platform agnostic and is built on top of our custom logical tree. We call this layer the “View Model” of the chart.
- We have a custom property store used within the charting logical tree. It is about 5 times faster than DependencyObject in look-up time and consumes about 3 times less memory.
- We have an entirely custom layout and do not rely on the XAML layout system to arrange our charting view models.
- We have a stand-alone visualization layer that presents the chart view model. Every view model is presented by the simplest possible SL visual – e.g. Rectangle, Line, Polyline, etc. Still, every single aspect is fully customizable by specifying Data Templates or Styles.
- We use Canvas – the only XAML panel that does not invalidate measure automatically. When a redraw of some charting part is required, we simply update the Width, Height and Canvas.Left, Canvas.Top properties of the corresponding visual. A simple test proved that calling InvalidateMeasure of the canvas upon a change the in view model degrades performance about 10 times.
- Architecture: a number of chart controls built for a specific purpose vs one monolith control (provides cleaner, simpler, and relevant API)
- RadCartesianChart -- hosts Bar, Area, Line, Spline, SplineArea, ScatterPoint, Candlestick, and OHLC series types (and their horizontal & stacked / stacked100 equivalents where applicable).
- RadPieChart -- hosts Pie series type.
- RadPolarChart -- hosts PolarLine, PolarArea, PolarPoint, RadarLine, RadarArea, RadarPoint series types.
- Notable features
- Financial indicators -- support for about 20 most common financial indicators to complement the data visualization for all cartesian series types.
- Extended DateTime support built-in in the axes' logic
- DateTimeCategoricalAxis -- Specialized categorical axis that expects each data point to provide a System.DateTime structure as its value for this axis. The points are grouped by a user-defined date-time component (Year, Month, Day, etc.) and then the groups are sorted chronologically.
- DateTimeContinuousAxis -- Specialized axis that expects each data point to provide a System.DateTime structure as its value for this axis. May be thought of as a timeline where the coordinate of each data point is calculated depending on the position of its associated DateTime on the timeline. The base unit (or the timeline step) of the axis is calculated depending on the smallest difference between any two dates.
- Support for linear and logarithmic axes.
- Built-in data sampling (with extended DateTime awareness)
- Behaviors:
- PanAndZoom Behavior -- with smooth scrolling support.
- TrackBall Behavior (also known as current value indicator)
- ToolTip Behavior
Generally we would encourage you to use the new ChartView control for any new project development that you are starting now. As for existing applications -- if you are satisfied with the RadChart implementation you are using now, it probably would be best to leave it be as there is no straightforward migration path between RadChart and RadChartView (migration is possible but some concepts are implemented differently in the new control, and some features are still missing -- we hope to achieve almost complete feature parity between RadChart / RadChartView by Q2 2012).
Kind regards,
Giuseppe
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
Pabitra
RadChartView currently does not ship with a legend. This means that the functionality you require is not available out of the box. After careful reevaluation when building the new chart control we have seen that customers put far less emphasis on the legend then initially thought and we are currently focusing on more core features such as performance, virtualization and memory consumption.
We do still have plans to introduce a legend and make it great. It will take some time though and we haven't scheduled that one for a particular Q release yet, so I cannot commit to a date. Let us know if you feel this feature requires a higher priority so that we take that into consideration.
Greetings,
Vladimir Milev
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
Thanks
Unfortunately Empty Values feature did not make it for the Q1 release. We will ship this feature with Q2 in the summer.
Please accept our sincere apologies for this delay.
Regards,
Vladimir Milev
the Telerik team
So what happens if I have an empty value then? How does the chart treat the value? As a zero value point? Does it draw a point/line for this zero point?
Is the value ignored somehow?
Or is it so not handled that the program explodes with when receiving NULL points?
By the way.. focusing on perf was the right move. Anytime I had 3 or 4 of your other charts on one page it would hang REAL bad. This one is VERY fast... :)
At present RadChart converts empty values to zeroes.
All the best,
Vladimir Milev
the Telerik team
So we'll second the comment above -- focusing on performance was the right move :D.
Thanks,
Anders, Denmark
(Edit: Issue removed as I found a working c# example in documentation).
Is RadChartView getting any love from management?
What is the status of RadChartView support for these features:
- missing values
- legend
- export
Thank you.
Since that post from almost a year and a half, the majority of our development effort has shifted to RadChartView. We have introduced a ton of new features (multiple axes, axis customization properties, implicit styles support, UI virtualization, ScatterSpline(Area)Series, Range(Bar)Series, DoughnutSeries, 8 chart annotation types and Light Render Mode series to name a few).
RadChartView is now our premier charting product for WPF/Silverlight. Its efficient and high performance engine made it suitable for use in other platforms and that is why RadChart for Windows 8 XAML and RadChartView for WinForms were derived from the same code base.
That said, here is a quick status update on the features you mentioned:
- Missing/empty values support was added with Q2 2012 release. Now when you have a null value in your data, RadChartView will display a gap, as expected. For example, please have a look at our online demo here.
- Legend support (or more specifically RadLegend support) was added with the Q1 2013 release. Some of our online demos were converted to use the new approach (ex1, ex2, ex3, ex4). For more information on our RadLegend control, you can check the respective help topic.
- Exporting is supported through Telerik Export Extensions and RadDocument. You can check this help topic for more information. The help topic uses RadChart, but the approach with RadChartView is exactly the same.
Regards,
Petar Kirov
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
I looked at the demos and help topic for RadLegend and played with RadChartView in a WPF project.
So far, it looks like I can do everything I need to do with RadChartView.
I am very new to Telerik,
My question is what is the alternate of radchart's
radchart.DefaultView.ChartArea.AxisY.AutoRange = false;
in radchartview(radcartesian chart).
How we can fix the x axis value of a line chart in rad cartesian chart. for eg.
we can do
radchart.DefaultView.ChartArea.AxisX.MinValue = 0;
radchart.DefaultView.ChartArea.AxisX.MaxValue = 30;
in radchart.
Please let me know if have any query.
TIA
To achieve your requirement you can simply set the Minimum and Maximum properties of the corresponding axis. For example on the LinearAxis.
Regards,
Martin Ivanov
Progress Telerik
Hey @Martin Thank you for your response.
Now I am able to achieve.
But now unable to bind the data with series.
Telerik.Charting.CategoricalDataPoint dp = new Telerik.Charting.CategoricalDataPoint();
dp.Value = Convert.IsDBNull(r["Good1"]) ? 0.0 : Convert.ToDouble(Convert.ToString(r["Good1"].ToString()));
dp.Category = Convert.IsDBNull(r["Time"]) ? string.Empty : Convert.ToString(r["Time"].ToString());//.NextDouble();
TIA :)
The posted code snippet should work as expected. Can you tell me what exactly doesn't work?
If you want to data bind the series you can check the Populating with Data section in the RadChartView documentation. I hope this helps.
Regards,
Martin Ivanov
Progress Telerik
Hey thank you for quick response..
data is not binding with the graph, although I can see the empty graph there.
this is xml code where I am binding the data to graph....
<telerik:RadCartesianChart HorizontalAlignment="Left" VerticalAlignment="Top" Margin="60,58,0,0" Height="606" Width="843" x:Name="chart1">
<telerik:RadCartesianChart.Grid>
<telerik:CartesianChartGrid MajorLinesVisibility="XY" MajorXLineDashArray="10,5"
MajorYLinesRenderMode="All">
</telerik:CartesianChartGrid>
</telerik:RadCartesianChart.Grid>
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis Maximum="100" Minimum="0"></telerik:LinearAxis>
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis Maximum="30" Minimum="0"></telerik:LinearAxis>
<!--<telerik:CategoricalAxis ></telerik:CategoricalAxis>-->
</telerik:RadCartesianChart.HorizontalAxis>
</telerik:RadCartesianChart>
My name is Dinko and I'm stepping in for my colleague Martin, who is currently out of the office.
Thank you for the provided code snippet.
Looking at this code snippet I can't see which series is applied to the chart. However, two LinearAxis are set so my assumption is that you are using ScatterSeries. Correct me if I am wrong. Basically, ScatterSeries require to have LinearAxis as a vertical and horizontal axis. I have prepared for you a sample project which demonstrates how you can bind ScatterLine series for example. Give this project a try and let me know if I were able to help you.
Regards,
Dinko
Progress Telerik
Hey thank you very much...
I was binding with with LineSeries( Line series require linear and categorical).
So, Only I was unable to fixed the X axis.
ScatterLine series worked for me.
Thank you again. Have good time.