TrackBall behavior on ScatterPointSeries

7 posts, 0 answers
  1. Jorn
    Jorn avatar
    222 posts
    Member since:
    Jun 2009

    Posted 19 Aug 2014 Link to this post

    Please see attached screenshot - I have a cartestian chart with one (scatterpoint) series per point. Sometimes points overlap as they do in my example and the tooltip only shows the one on top. So I tried using the TrackBall behavior to display some info, but it seems that this behavior does not work correctly on ScatterPointSeries (works correctly on LineSeries). No matter where I place the cursor the TrackBall displays all the series instead of the closest one/ones (tried all the snap modes). If this is intentional - are there any other solutions to my problem?
  2. Petar Marchev
    Admin
    Petar Marchev avatar
    968 posts

    Posted 22 Aug 2014 Link to this post

    Hello Jorn,

    What you describe is actually by design. The trackball will display information about the closest point of each series. In this case, you have six series and you will always see six items in the track ball info.

    Having a series for each point you need is not a good solution, I recommend you remove this. Keep one series and have a DefaultVisualStyle (or a PointTemplate) to color the item with the Fill in mind. You can implement a Brush color in your business object and use a Binding in the Fill setter of the style that gets this Brush. Note, this does not target to solve the track-ball issue you have. Having a series per point may result in a significant performance hit if you have many items. Sure, if you have no more than 10 items, you will not see a speed change, but I think that semantically here you need 1 series, not 10.

    If you decide to switch to one series - this will not solve the issue at hand, because you will still have two or more points over one another. I simply think that a ponit series is not the most appropriate type of display for this scenario. Can you please let us know more about your case - what type of data are you plotting and what information would you like to have displayed. We can perhaps make a suggestion to use another series, such as clustered bars.

    Regards,
    Petar Marchev
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
  3. DevCraft banner
  4. Jorn
    Jorn avatar
    222 posts
    Member since:
    Jun 2009

    Posted 26 Aug 2014 in reply to Petar Marchev Link to this post

    Ok, I now understand why all the points are displayed in the TrackBall. I will merge all series into one and create a brush property in my business object. I cannot display the data as bars because the points must be visualized in a 2 dimensional space relative to each other.
  5. Jorn
    Jorn avatar
    222 posts
    Member since:
    Jun 2009

    Posted 26 Aug 2014 in reply to Jorn Link to this post

    If I merge my series into one and some points overlap - will the TrackBall only show one point from this series or will it display all the overlapping points if I hold the pointer over overlapping points?
  6. Petar Marchev
    Admin
    Petar Marchev avatar
    968 posts

    Posted 26 Aug 2014 Link to this post

    Hello Jorn,

    As I mentioned earlier, displaying the items in a single series will not solve the track-ball issue at hand. What will happen, I think, is that you will never see info for one of the overlapping points (the one that is second in the items collection).

    Do give us more information on the data that you want visualized so that we can give you more scenario specific suggestions.

    Regards,
    Petar Marchev
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
  7. Jorn
    Jorn avatar
    222 posts
    Member since:
    Jun 2009

    Posted 26 Aug 2014 in reply to Petar Marchev Link to this post

    The chart in question is a risk chart where risk indicators (KPI's) have a probability value and a consequence value. These are plotted in a 2D space to visualize the severity of the risks (upper right corners are high risks). See attached file for example. These kind of risk charts is a standard way to visualize risks for risk managers/analysts. I can of course visualize this with clustered bars but the effect is not the same. If you have any pointers tips on how to visualize overlapping points - please let me know. The tooltip only displays on the topmost point, but as a simple "solution" I have put a tooltip on the LabelTemplate to give further details about the points.
  8. Petar Marchev
    Admin
    Petar Marchev avatar
    968 posts

    Posted 27 Aug 2014 Link to this post

    Hello Jorn,

    I agree, the type of display you have chosen is most informative and any suggestion I make will just not be as good.

    Here are some ideas to how you can solve the issue at hand.

    1. I have not seen any of your code so I will explain a few things. We have two types of series - categorical and scatter. For instance BarSeries and PointSeries are categorical, where one of the axes is categorical. Say you want to plot fruit count - Bananas 50, Apples 20, Oranges 25. Scatter series have two numerical axes.

    The categorical series have a CombineMode, where the scatter do not. In the images you attached, the Probability (horizontal values) are always integer. If this is the case, and all Probabilities are integer, you can use a categorical chart with a small work-around to ensure points do not overlap. I have demonstrated this in the project I attached. The work around is to use BarSeries (because the Cluster CombineMode is not implemented for the PointSeries) with a custom template to mimic a Point and using a dummy series to ensure that there are no missing values (such as Probability=2 in my example).

    Surely, this will not work if the probabilities are not integer, but double.

    2. Another option is to set a tooltip for the item's label. This way, the user can see that there are two labels and hover over one of them, to get info. (Of course, an option would be to plot all needed data in the label.) I will not go any deeper here, hoping the first suggestion is a feasible solution.

    3. Another option is for you to implement your own track-ball or tooltip features and show information for all overlapping items. You can check out an example of a trackball-like annotations in our sdk samples here.

    Let us know how it goes.

    Regards,
    Petar Marchev
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
Back to Top
DevCraft banner