Performance, labels, and zooming

2 posts, 0 answers
  1. Jason D
    Jason D avatar
    71 posts
    Member since:
    Jan 2011

    Posted 04 Dec 2013 Link to this post

    I think this product does not meet my needs, but I would still like answers to the following questions. If there is a better product fit, please let me know. What I want is this HeatMap display in a 2D chart.

    I need to display several hundred thousand points in a heatmap, possibly several million. The product page says HeatMap can "render an obscene amount of visual detail without slowing down and without sacrificing interactivity". I am not seeing this so I would like to know what I need to change. Using 120,000 points it is pretty slow.

    I wonder if the problem is the column headers. I was hoping HeatMap would act like a chart and only display "axis labels" at appropriate points, not *all* of them.

    Is there any way to zoom along the x-axis? With this many points, the user will want to zoom in on specific areas.

    BTW, it would be nice if we could upload zip files of projects, not just code snippets.

    Public Class TempInfo
        Public Property Timestamp As DateTime
        Public Property SensorIndex As Int32
        Public Property Temperature As Single
        Public Sub New(ByVal adTimestamp As DateTime, ByVal aiSensorIndex As Int32, ByVal afTemperature As Single)
            Timestamp = adTimestamp
            SensorIndex = aiSensorIndex
            Temperature = afTemperature
        End Sub
    End Class
    Class MainWindow
        Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
            Dim infos As New List(Of TempInfo)
            Dim loRandom As New Random
            For liDateCounter As Int32 = 1 To 10000
                For liSensorCounter As Int32 = 1 To 12
                    infos.Add(New TempInfo(DateTime.Now.AddHours(liDateCounter), liSensorCounter, loRandom.Next(70, 90)))
            RadHeatMap1.Definition.ItemsSource = infos
        End Sub
    End Class
    <Window x:Class="MainWindow"
        Title="MainWindow" Height="350" Width="525" xmlns:telerik="">
            <telerik:RadHeatMap HorizontalAlignment="Stretch" Name="RadHeatMap1" VerticalAlignment="Stretch" SnapsToDevicePixels="True" UseLayoutRounding="True">
                    <telerik:CategoricalDefinition ItemsSource="{Binding}"
                                        ValuePath="Temperature" />
  2. Petar Marchev
    Petar Marchev avatar
    968 posts

    Posted 09 Dec 2013 Link to this post

    Hello Jason,

    You have opened a public forum thread and this is why you cannot attach zip files. If you open a private support ticket you will be able to attach zip files.

    You are correct to think that the bad performance is due to the number of labels. With one of the previous official releases of our controls, we introduced a label interval feature for the row and column headers of the heat map. So I suggest you use it to decrease the number of labels and give it another shot.

    The heat map control has no notion of axes, the row and column headers are pretty much like the headers of a data-grid, and these headers to not act like axes.

    There is no zooming feature in the heat map but you can implement the following:
    Upon click and drag you can add a Border element to annotate the selection. Later when the mouse button is released, you can determine what the user selected. You can get the desired information from the HoveredCellDataPoint. Then you can have a second view for detailed information about the selected data section.

    Let us know if this helps.

    Petar Marchev
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  3. DevCraft R3 2016 release webinar banner
Back to Top