Jump to content
Software FX Community

JuanC

Staff
  • Posts

    863
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by JuanC

  1. Build 3833 should fix the zoom exception issue on not supported galleries (Pie, Doughnut, Radar, etc.) JuanC
  2. Mouse selection issue should be fixed on build 3833. see original post for details. JuanC
  3. We have uploaded a new build 3833 that should fix these issues, you can download here (make sure you run IE as administrator if UAC is enabled in your machine) About the actipro docking issue, if the bug persists after upgrading to 3833 please send us a sample executable that uses a dummy chart in a similar way as the way you do it in your real app. JuanC
  4. We will try to provide some way to avoid the fake series hack in future builds. JuanC
  5. The exception is related to random data we will create that you don't want anyway. To have an empty chart you will want to add something like this in your Page/Window/Control loaded event chart1.ItemsSource = null; Note that in this case we will not paint your X and Y axes but instead we will just paint a string saying "No Data Available", you can customize this string and replace it with any visuals. Unfortunately there is not a built-in way for you to specify that you want to see the X/Y axes (we could detect that you have set both min and max and show it and we will consider this for future builds). To display the axes you will have to give us a collection of at least one item and because you do not want this value to be painted you can use double.NaN as follows SeriesAttributes series = new SeriesAttributes();series.BindingPath = "Value"; series.BindingPathX = "Timestamp"; chart1.Series.Add(series); List<ChartPoint> emptySet = new List<ChartPoint>(); emptySet.Add(new ChartPoint(double.NaN, DateTime.Now)); chart1.ItemsSource = emptySet; If you are passing data using Chart.ItemsSource then all you have to do is replace it with the real collection once the user has decided what to plot, if you are passing data on a per-series basis you should remember to remove the fake series (and change the sample code to make sure the collection is assigned to the series) Hope this helps JuanC
  6. Your converter idea would also work (kind of), if you use Binding Path=Self instead of DataItem.XYZ you will receive an object that you can cast to ChartFX.WPF.Internal.LogicalPointItem, in this class we expose DataItem as well as the Series and Point. We do not expose the chart but if you need this we could add it as a property. JuanC
  7. Let's say you are passing a collection of CLR objects to the chart, and these objects expose extra properties you are interested in, if you are using datatable it should work the same with your data having multiple columns you want to expose in the tooltip. All you need to do is create a datatemplate as follows <DataTemplate x:Key="RichToolTip"> <Grid> <Image Grid.Row="0" Grid.Column="0" Source="{Binding Path=DataItem.Image}" Width="70" Height="100" HorizontalAlignment="Center"/> <TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Path=DataItem.Product}" FontFamily="Verdana" FontSize="14" HorizontalAlignment="Center"/> The key here is that when we use your template, DataItem will point to your CLR object (or datatable row). In this sample the CLR object looked like this public string Product { get { return m_product; } } public string Image { get { return m_image; } } You use this template by assigning to AllSeries.ToolTips.Template or if you want to customize the tooltip on a per-series basis Series.ToolTips.Template JuanC
  8. Yes, make sure you include a pointer to this thread in your email. JuanC
  9. We were able to duplicate the exception and it is in fact related to bar using XY data. Future builds will fix this exception by ignoring the X axis values for the bars. To get a chart similar to what you described you need the following code. chart1.Gallery = Gallery.Bar; ChartFX.WPF.Galleries.Bar barAttr = (ChartFX.WPF.Galleries.Bar) chart1.AllSeries.GalleryAttributes; barAttr.XValues = true; barAttr.XWidth = 0.2; Note that the XWidth property is set in the same units as your X axis, also note that overlapping is possible depending on your data. JuanC
  10. Unfortunately Zoom Map, Style and Scroll depend on manipulating the X and/or Y axes to handle zooming while retaining visibility of other items in the chart such as axis labels, titles, legend, etc. Radar, Pie, Doughnut and other "non-axes" charts do not support these types of zoom, in these cases we would recommend you use the Zoom Magnifier feature. We have fixed the exception thrown when the user selects the zoom area and this fix wil be available in our next hotfix which should be available in a day or two. JuanC
  11. I don't think you need a crosstab transform in this case, crosstab is not easy to explain in a few lines but I'll try. ChartFX normally uses columns in your dataset as series to be plotted (e.g. lines in a line chart) and records in your dataset as "points" in the X axis,e.g. Month - Nokia - RIM - Apple Jan - 14 - 12 - 9 Feb - 15 - 11 - 10 So you would create as many series as manufacturers and set their BindingPath properties appropriately, but sometimes your data looks like this Manufacturer - Month - Sales Nokia - Jan - 14 RIM - Jan - 12 Apple - Jan - 9 Nokia - Feb - 15 RIM - Feb - 11 Apple - Feb - 10 In this case you would probably want one series per manufacturer and one X point per month so you would use crosstab setting the RowPath as Month and ColumnPath as Manufacturer. Also note that bar charts normally do not support X values as it is not defined how wide should the bars be drawn. Normally XY data should be plotted using Scatter, Line or Area galleries. If you just want a scatter chart using this data you can create a SeriesAttributes, set its BindingPath and BindingPathX to the names of your Y and X fields and add this SeriesAttributes to the chart's series collection. The exception you are receiving is probably independent of this, if you know the min and max you want in a particular axis you don't have to wait for the bound event to set them. JuanC
  12. Can you post some information about the structure of your data and how you are customizing the crosstab transform to help us duplicate this issue? JuanC
  13. ChartFX for WPF will "process" all your data but it will use the size of the chart in pixels to try to draw as few points as possible while retaining visual fidelity with the hole data set. As far as I can tell what we do is equivalent to sampling the data in the sense that you cannot pick 200 arbitrary points from a 1 000 000 data set as you might be ignoring important spikes in the data. One thing we do that might be affecting the performance you experience is that we keep a copy of the data which in your case might be increasing your load time but should have no effect in the performance repainting the chart. By delaying the data compression untill draw time we automatically gain resolution as you zoom in the chart. Unfortunately we do not have any other perf optimization mechanisms in the product at the moment. Can you elaborate on where do you have this data (SQL, Business Objects, etc.) and what load-time/draw-time performance you get? You can drop an email to support at softwarefx dot com if you want to provide more details offline. JuanC
  14. Unfortunately we do not have at the moment a way to expose in detail the fixes we have included in a specific hotfix, this is something we want to provide in the future. We have fixed several issues since build 3581 (October 2009) and added a couple of new features, if you send us an email and point to this thread we can provide an informal document outlining the changes. We normally release a new "service pack" depending on severity of issues, compatibility with new products, etc. I would expect a new ChartFX for WPF service pack in a a month or 2. JuanC
  15. Please note that you can set the Zoom.Style to ZoomStyle.Stripe and then set Zoom.Mode to ZoomMode.Selection in the WPF control. JuanC
  16. We have fixed this issue in hotfix build 3812 which can be downloaded here (make sure you run IE as an Administrator if UAC is enabled). Please note that we treat Series.Visibility Hidden and Collapsed differently, in a non-stacked chart, setting a series to be Hidden will hide the series markers (bars, lines, etc.) but the series will affect the axis scaling while setting the visibility to collapsed will result in a recalculation of the axis scale as the series will not affect the scale anymore. In a stacked chart, you should use Collapsed (change the FalseVisibility attribute for the VisibilityToBooleanConverter tag in your XAML) Regards, JuanC
  17. You can download our most recent hotfix here (make sure you run IE as an Administrator if UAC is enabled). Regards, JuanC
  18. chart1.Style = ChartFX.WPF.Motifs.Simple.Style; This will work provided you add a reference to ChartFX.WPF.Motifs.dll, also note that after typing ChartFX.WPF.Motifs. you will get intellisense on all the available motif classes (i.e. Basic, Edge, etc.) JuanC
  19. We have uploaded a new build 3807 that should fix the issue where the second time you zoom the ScrollViewChanged is not fired. I tested both zoom stripe and map and rezooming and scrolling sent the event as expected. If you have any problems with this build please try posting/sending a sample app that reproduces the issues. JuanC
  20. We are in the process of building a sample to confirm that the API covers your scenario and post it here, note that GetScrollView should return the range as doubles, if you are using Dates you can translate those values using the static methods in DataUnit (e.g. DoubleToDate) JuanC
  21. JuanC

    axis events

    The main reason for the lack of events is that the axis itself is not a visual (e.g. a chart with vertical panes sharing the same Y axis will have 2 visuals depicting the same axis). Can you explain what is your scenario? This might help us find out if there is a better way to support the functionality you want to build. JuanC
  22. Separating pie slices will be supported in 8.1 programmatically. We are not sure yet whether we will provide a built-in UI for this feature. JuanC
  23. This issue will be fixed on build 3784 (or later) scheduled to be available in a day or two. Note that because zoom stripe scrolling is done for a specific X axis, you should only have 1 X axis when using this feature. JuanC
  24. This issue will be fixed on build 3784 or later which should be available in a day or two. Please note that the annotations will show on the zoomed area but not the map, this is similar to our current behavior when using zoom stripe. To show it in both would require cloning all the annotation objects which might not be always possible. I apologize for our delay fixing this issue, even though the original posting was done on January, this issue was never added to our bug database so we were not actively working on it. JuanC
  25. Unfortunately not. We have been studying your scenario and although you never mentioned whether the charts are visible simultaneously or not we have discussed/prototyped the following features 1) Baseline: We assume a 0 baseline, this is particularly important for bars and area as the portion painted should go from the baseline to the actual value. We currently have a way to paint an axis at a different position (e.g. AxisX.Position = AxisPosition.Value; AxisX.PositionValue = 10000) but this will not result in bars "growing" from 10000. This is something we have already implemented in 8.1 (more on 8.1 availability later) 2) Baseline Synchronization: In a multiple axis chart (either using the same pane or multiple panes) it would really help if we would synchronize the baseline, this will ensure that all bars "grow" from the same position regardless of the axis, obviously if one axis goes from 0 - 20 and the other goes from -10 to 10 it would mean the first axis will lose half of its space (i.e. there is less space for the actual data) to allow such synchronization. We have already implemented this in 8.1 although the public API has not been finalized. We feel we might change the default to this behavior. 3) Step Synchronization: This would mean that the axis steps are also synchronized which might result in additional wasted space since we only want "round" steps. We are still exploring how to implement this in 8.1 and whether it would be the default behavior. 4) Tighter control of baseline position and steps: This would help in case your charts are not visible simultaneously but you still need to achieve continuity in where the baseline is painted probably expressed as a percentage of the total available space. We could also expose a property that allow you to force the steps at a specific distance. Although these property seem nice to have we are still not sure if there really is a business scenario for them. Your feedback is welcome. Unfortunately most of these features are not easily achievable in 8.0, you could workaround the lack of baseline by subtracting 10K from your data, which means you will have to handle an axis event that allows you to customize the labels (so that you can add the 10K back). You would also have to customize the tooltips to add the 10K back. In order to achieve baseline or step synchronization it would be harder as you would have to calculate the min/max on your own to make sure they are in sync. We expect to have a public 8.1 beta in a couple of months but we are open to provide you with an alpha build if necessary. The current plan for 8.1 is that it would be a free update but the assemblies will coexist with 8.0. JuanC
×
×
  • Create New...