SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

0 votes
0 answers
2 views

Dear all,

It try to test different rendering on my system for my chart.
When comes to the point to test the Direct3D11RenderSurface, it fails to load

See attached picture for my system information return by directX diag tool

What did I miss to make it work ?

0 votes
0 answers
5 views

Dear all,

I have a data series which I express in one graph using Numeric axis on X and Y
I need to display the LOg of that series.

Question :

Does the LogarithmicNumericAxis process the log(x) automatically or it is just rendering the Y as this scale ?

What I mead is that if I need to display the Log on a second graph of the same serie, do I have to provide the log already in the series of does the LogarithmicNumericAxis does it automatically ?

regards

0 votes
0 answers
7 views

Hi,

I see I can’t choose version 5 from the drop down, is this version not released yet? Because I got an email saying otherwise months ago, please correct me if I shouldn’t use this version.

That been said, I downloaded version 5 from git and compiled it.
if I try to use something like this:

<s:HorizontalLineAnnotationForMvvm IsEditable="False" ShowLabel="False" Stroke="Green" StrokeThickness="2.0" Y1="2.0" IsHidden="False"/>

I get an exception in “LineAnnotationWithLabelsBase” function “MakeVisible” where it seems that “AnnotationLabels” is null and there is no check. I tried to fix the error and it kinda worked, but in doing so “IsHidden” just doesn’t work anymore, I even compared the code with the older version (4.2) and there is no difference in handling the visibility.
Find attached the code that shows the problem.

What is happening?

Thank you

0 votes
0 answers
20 views

Hi all,
I want to use CategoryDateTimeAxis in my chart but also i want to format Date.
I found in documentation CategoryDateTimeAxisLabelProvider class but examples are not working and
this part does not exist anymore.
// Get the axis controller which has the XAxis data on it as dates
let controller = dtAxis?.currentController as? SCIArrayController

My question:
How to get seconds or dates based on min and max values from visibleRange to format it properly?

0 votes
0 answers
30 views

I would like to restrict the chart to cap at the extents while panning, but chart stretches at the extents. I could able to set clip mode for X axis in SCIZoomPanModifier, same way I would like to set clip mode Y axis but I couldn’t.

Please help me to restrict my chart to not move after chart data extents.

Thanks,
Vadivel Muniswamy.

0 votes
0 answers
24 views

Dear all,

I have my axis which are position on the Laft side of my chart. Then I have an annotation wich is define and where the labelPlacementProperty=”Axis”. By doing so the value of the axis when we move the cursor is display in a rectangle box.

my customer would like to get the labelPlacementProperty=”Right”, but by doing so , I am loosing the small rectangle around the axis value.

What is the way to get the annotation axis appearing on right side but still having the value inside a rectangle ?

(see image below)

0 votes
32 views

Hi,

I have issue with export SciChart to Bitamp. I have to generate pdf report from data. Report contains two charts.

It is possible to render chart in memory and export to bitmap? I know it is possible in WPF but I couldn’t achive this in Android.

Now my solution is that I render this charts on fragments and wait 1s on each to render and then save chart. But this solution is not good. For slower devices chart is not exported correctly.

For example on one device have strange grid (only exported bitmap, fragment with this chart looks good):

Chart

  • Marcin K asked 1 week ago
  • last active 1 week ago
0 votes
38 views

For example, to draw a first part of a Line green and the second white? Or do you need multiple dataseries for that?

Especially I nee some areas of the line where there should be a “gap”, which could be done with multiple lines or (maybe easier from this totally beginner point of view) with one line, where some parts (the gaps) get black color.

I think, I will need multiple lines for that, but I wanted to be sure…

Thanks in advance.

  • Philip S. asked 1 week ago
  • last active 7 days ago
0 votes
34 views

Hi there,

I am new to the SciChart. Could you please tell me what is the name of “x-Axis” in SciStockChart?
Since from your example, you used SciChartSurface. The Checkbox syntax shows below. The ElementName is xAxis.

CheckBox Margin=”3″ Content=”Draw Major Gridlines” IsChecked=”{Binding ElementName=xAxis, Path=DrawMajorGridLines, Mode=TwoWay}”/>

… …

s:SciChartSurface.XAxis>
s:DateTimeAxis x:Name=”xAxis” VisibleRangeChanged=”OnXVisibleRangeChanged”>
/s:SciChartSurface.XAxis>

But I can not find or change the name property in SciStockChart. Could you please tell me what ElementName should I use? Or if there are other ways to achieve this. Thank you very much!

0 votes
38 views

I have issue with legend on high resolutions screens. Checkboxes and text is very small and hard to read. I couldn’t find any solution to change text size or provide my own template with text size for legend in Android SciChart.

I want to change legend text size depends on screen like it is in Android by declaring size in dimens.xml.

I do that for Axis labels but I don’t know how do the same for text in legend.

Does anyone know how to achieve this?

  • Marcin K asked 1 week ago
  • last active 1 week ago
0 votes
50 views

I need MouseWheelZoomModifier to work only when I pressed mouse button. I wrote:
<s:MouseWheelZoomModifier ExecuteOn="MouseRightButton" />
But it all the same executing when I’m not pressing mouse button. Why?

0 votes
57 views

I want to paint my time axis like this:
Chessboard ruler
Or just highlight last week, day, hour.
Is there way to apply style only on part of axis?

0 votes
57 views

Hi,

I’m currently testing the 3D charts of scichart, if we can use it for our next project. I have to build up a chart, that looks like that attached ref.jpg. I’m currently using the MountainRenderableSeries3D and I get the data displayed in the way it should be, beside the area below the curve (see screenshot.jpg).

Is it possible to fill the area below the curve? Which kind of RenderableSeries3D do I Have to use?

Thanks!

  • joerg asked 2 weeks ago
  • last active 2 weeks ago
0 votes
45 views

I have a SciChart WPF control which works as expected when it is in a dedicated window, but if I place it inside of a grid it will not display properly. As you can see in the picture below, it displays the background and Axis properly, but the actual chart itself in the center is very tiny. enter image description here

XAML

<UserControl …
             xmlns:s="http://schemas.abtsoftware.co.uk/scichart">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="2*"/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            Some other stuff
        </Grid>
        <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" />
        <s:SciChartSurface Grid.Row="2" x:Name="SciChartSurface">
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Time"/>
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis/>
            </s:SciChartSurface.YAxis>
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <s:RubberBandXyZoomModifier />
                    <s:ZoomExtentsModifier />
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
        </s:SciChartSurface>
    </Grid>
</UserControl>
0 votes
48 views

I hace one SciChartSurface with FastOhlcRenderableSeries and FastColumnRenderableSeries.
I want to make something like Trading View. So I need to bind FastColumnRenderableSeries to bottom of surface.
Now, I wrote: VisibleRangeLimit=”0, 0″ VisibleRangeLimitMode=”Min”. It binds bottom of axis to bottom of surface, so zero always at zero. But how I can to bind top axis part?

I saw your example where you are using two Grid with two rows, but I want make it in one row.

0 votes
50 views

When I’m writing VisibleRange=”0, 10″ it works as if I’d wrote “0, 1”.
See my video https://youtu.be/nJTW5-3kO_o

0 votes
0 answers
34 views

iOS 11.2 with xCode 9.2

I have a chart with two data series and a legend. The chart lives in a view controller that is embedded in a navigation controller. I configured the navigation bar to hide itself when the phone it tilted into landscape mode: navigationController.hidesBarsWhenVerticallyCompact = true

When I tilt the phone the navigation bar is hidden as expected. However when I tap on the chart legend to turn off one of the data series I see the navigation bar re-appears. Screen shots attached.

0 votes
0 answers
44 views

Hi

I been evaluation SciChart WPF trial version and I have a problem with BoxPlotDataSeries. Is possible to adjust bar width with box plot series? When I have a series with only one data point box plot is too wide. But when I have a series with multiple data point width is OK (see attached images). Is there something I am missing here? Or is the another bar chart type where I can set y1 and y2 points for each bar?

Here is XAML from my test program:

        <s:SciChartSurface x:Name="SciChartSurface" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="3" RenderPriority="Normal"
            RenderableSeries="{s:SeriesBinding RenderableSeriesViewModels}" Rendered="SciChartSurface_OnRendered"
            ViewportManager="{Binding ViewportManager}">

            <s:SciChartSurface.Resources>
                <Style x:Key="CirSeriesStyle" TargetType="s:FastBoxPlotRenderableSeries">
                    <Setter Property="StrokeThickness" Value="1"/> 
                </Style>
            </s:SciChartSurface.Resources>

            <s:SciChartSurface.XAxis>
                <s:NumericAxis DrawMajorBands="True" VisibleRange="{Binding XRange}" AxisTitle="Delay" AxisAlignment="Bottom" AutoRange="Never"/>
            </s:SciChartSurface.XAxis>

            <s:SciChartSurface.YAxis>
                <s:NumericAxis DrawMajorBands="True" VisibleRange="{Binding YRange}" AxisTitle="dB" AxisAlignment="Left" AutoRange="Never"/>
            </s:SciChartSurface.YAxis>

            <s:SciChartSurface.RenderSurface>
                <s3D:Direct3D11RenderSurface 
                    InitializationFailed="Direct3D11RenderSurface_OnInitializationFailed"
                    RenderingFailed="Direct3D11RenderSurface_OnRenderingFailed"/>
            </s:SciChartSurface.RenderSurface>

            <!-- Add Zooming, Panning behaviours to the chart -->
            <!-- where xmlns:s="http://schemas.abtsoftware.co.uk/scichart" -->
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <!-- Allow drag to zoom on Left mouse -->
                    <s:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"
                        RubberBandStrokeDashArray="2 2"/>
                    <!-- Allow pan on Right mouse drag -->
                    <s:ZoomPanModifier ExecuteOn="MouseRightButton" ClipModeX="None" />
                    <!-- Allow Dragging YAxis to Scale -->
                    <s:YAxisDragModifier DragMode="Scale"/>
                    <!-- Allow Dragging XAxis to Pan -->
                    <s:XAxisDragModifier DragMode="Pan"/>
                    <!-- Allow Mousewheel Zoom -->
                    <s:MouseWheelZoomModifier/>
                    <!-- Allow Zoom to Extents on double click -->
                    <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>

        </s:SciChartSurface>
0 votes
0 answers
39 views

Using iOS 11.2 and Xcode 9.2 and Swift 4

My chart includes two SCIXyDataSeries objects rendered by SCIFastLineRenderableSeries. Also I am using these chart modifiers: SCIPinchZoomModifier, SCILegendModifier, SCIZoomPanModifier

My Y axis is configured with autoRange set to always. Auto range works great as I pan left-and-right. However the Y axis does not “auto range” when I disable one of the data series by tapping on the legend. When I pan left-and-right I can see the auto-range adjusting the Y axis to fit the data set that is no longer visible. Any way to fix this?

Two screen shots are attached. The first shows both data sets visible. The second shows how the Y axis does not change when I de-select the yellow data series.

0 votes
53 views

Dear all,

Does anyone of you have a solution in order to avoid zooming out too much when using the mouse wheel button ?
What I means is that if you call the ZoomExtents the graph will zoom out to fit in chart viewport. By using the mouse wheel is there a way to stop zooming where we reach zoomextents range ?

regards

  • sc sc asked 2 weeks ago
  • last active 2 weeks ago
0 votes
53 views

Is there a way to extract the equation when using the linear or polynomial trend line filter api?

0 votes
42 views

When I embed my view controller in a navigation controller the top of the chart is hidden behind the navigation bar. So I went to the storyboard and found the view controller attributes section called “extend edges” and turned off the option called “under top bars”. This fixes the top of the chart. Now the bottom of the chart drops off the bottom of the screen. The x-axis is completely missing. Does SciChart support this case?

0 votes
0 answers
50 views

Hi

I am trying to implement an overlaying window on the SciChart.
What I want to do is this.
I already have a graph with x-axis and y-axis.
I want to apply a semi-transparent window on the region that users are interested in and extract the data within the window.
Is there any class I can use for this application? Or Is there any good example?

0 votes
45 views

Hi, I want to make the YAxis show only certain label (max, min, or others) only like the attached image. I want to ask if it is possible to show axis value unevenly. Thanks!

  • may lym asked 2 weeks ago
  • last active 2 weeks ago
0 votes
54 views

I am displaying a heatmap series that’s ~512×4000. The heatmap originally displays fine but when I zoom or pan, the hearmap disappears. In the attached images, Image1 is the heatmap displayed from ~5500-7500 on the Y axis. When I zoom in even slightly, I get Image2, which should have data but it does not. Appreciate any help on this.

BTW, I can display, zoom, and pan on other heatmaps but they are usually much smaller than this one.

0 votes
61 views

Hello, right now when I click a previously selected series I get the series unselected, I’d like to keep it selected (ignore mousedown). I want to deselect it only when I click on an empty chart surface or another series, how can I accomplish this?

Thanks

0 votes
65 views

If I have developers on my team who do not need to modify the charting or develop in it, but just need to build the project and debug. Is there a way for me to enable this? Right now we can’t build because of no license (understandable), but I assume buying a license just so they can build is perhaps not required?

0 votes
0 answers
60 views

Hello,

I’m currently evaluating SciChart to see if it supports our needs for an application. We’re trying to have a chart that closely mimics the iOS Stock application (attachment: StockApp.PNG) but for sensor values. Our effort so far can be seen in attachment: SciChart.jpg.

  1. Inside the tooltip provided by the RolloverModifier, we only want to display the value of the Y axis – and get rid of the X axis (datetime). Is there a way to hide the X axis value and only display the Y axis value inside the tooltip? Refer to SciChart.jpg. For example, when RolloverModifier is visible, the tooltip for Turbidity line should only read “Turbidity: 2.50 NTU”, where 2.50 is the Y-axis value and NTU is the unit of measure. Notice we do not want to see “X: 28/01/18 12:24PM” at all in the tooltip.

  2. Similar to the iOS Stock app, we require a second RolloverModifier when a second finger rests on the chart. The idea is to provide a quick popover to display the difference in Y-axis value between the two RolloverModifier values. I tried adding a second instance of RolloverModifier to the SCIChartSurface however the vertical trace line would just overlap the first finger’s trace line.

There are the two major requirements I see right now in determining whether to invest in SciChart. So please let me know if they are possible. Below is the code.

    override func viewDidLoad() {
        super.viewDidLoad()

        layout()

        configXaxis(surface: sciChartSurface)
        configYaxis(surface: sciChartSurface)        
        loadDataSeriesFromCsv(csv: rlCSVToDownload!)
    }

   private func layout() {
        let margins = view.layoutMarginsGuide

        sciChartSurface = SCIChartSurface()
        sciChartSurface?.translatesAutoresizingMaskIntoConstraints = false
        self.view.addSubview(sciChartSurface!)

        sciChartSurface?.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
        sciChartSurface?.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
        sciChartSurface?.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
        sciChartSurface?.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
    }

    private func configYaxis(surface: SCIChartSurface!) {
        let axis = SCINumericAxis(), numericFormat = "%.02f"
        axis.textFormatting = numericFormat
        axis.cursorTextFormatting = numericFormat
        surface.yAxes.add(axis)
    }

    private func configXaxis(surface: SCIChartSurface!) {
        let axis = SCIDateTimeAxis(), datetimeFormat = "dd/MM/YY H:mm a", subDayFormat = "H:mm a"
        axis.textFormatting = datetimeFormat
        axis.subDayTextFormatting = subDayFormat
        axis.cursorTextFormatting = datetimeFormat

        surface.xAxes.add(axis)
    }

    private func addModifiers() {
        let xAxisDragmodifier = SCIXAxisDragModifier()
        xAxisDragmodifier.dragMode = .pan
        xAxisDragmodifier.clipModeX = .none

        let yAxisDragmodifier = SCIYAxisDragModifier()
        yAxisDragmodifier.dragMode = .pan

        let extendZoomModifier = SCIZoomExtentsModifier()
        let pinchZoomModifier = SCIPinchZoomModifier()

        let rolloverModifier = SCIRolloverModifier()

        let legend = SCILegendModifier()

        let groupModifier = SCIChartModifierCollection(childModifiers: [xAxisDragmodifier, yAxisDragmodifier, pinchZoomModifier, extendZoomModifier, legend, rolloverModifier])

        sciChartSurface?.chartModifiers = groupModifier
    }

   private func loadDataSeriesFromCsv(csv: CSV) {
        rlCSVConnection?.download(csv: csv, onProgress: nil, onComplete: {
            [weak self] (csv) -> (Void) in

            self?.turbDataSeries = SCIXyDataSeries(xType: SCIDataType.dateTime, yType: SCIDataType.double)
            self?.turbDataSeries.seriesName = "Turbidity"

            self?.cl2DataSeries = SCIXyDataSeries(xType: SCIDataType.dateTime, yType: SCIDataType.double)
            self?.cl2DataSeries.seriesName = "Chlorine"

            //... Populate data into DataSeries ...

            self?.turbRenderableSeries = SCIFastLineRenderableSeries()
            self?.turbRenderableSeries.isDigitalLine = true
            self?.turbRenderableSeries.dataSeries = self?.turbDataSeries
            self?.turbRenderableSeries.style.strokeStyle = SCISolidPenStyle(color: UIColor.orange, withThickness: 1)

            self?.cl2RenderableSeries = SCIFastLineRenderableSeries()
            self?.cl2RenderableSeries.isDigitalLine = true
            self?.cl2RenderableSeries.dataSeries = self?.cl2DataSeries
            self?.cl2RenderableSeries.style.strokeStyle = SCISolidPenStyle(color: UIColor.green, withThickness: 1)

            self?.sciChartSurface?.renderableSeries.add(self?.turbRenderableSeries)
            self?.sciChartSurface?.renderableSeries.add(self?.cl2RenderableSeries)

            self?.addModifiers()
        }, onFailure: nil)
    }

Thanks.

0 votes
58 views

I am developing android app where i received data from pressure sensor(attached to arduino) and want to show it in scichart heatmap. i created succesfully scichart heatmap with IPaletteProvider. Now i want to update the heatmap with pressure sensor but currently i am unable to update my heatmap. Here is my Whole(PressureActivity code)code.

if (intent.getAction().equals(Constants.DATA)) {
String data = intent.getStringExtra(“DATA”);
if (data.contains(“ccccc”)) {
int index = data.indexOf(‘/’);
int indexx = data.indexOf(‘#’);
String d = data.substring((index + 1), indexx);
DoubleValues doubleValues=new DoubleValues(1);
doubleValues.add(Double.parseDouble(d));
dataSeries.updateZValues(doubleValues);
}
}

The above code is piece of android code where i actually received data from arduino and want to show it in heatmap so i update my dataSeries value. In my case
i use UniformHeatmapDataSeries<Integer, Integer, Double> dataSeries
But it did not work and shows only a rectangal of blue color and not updating with coming data.
Any one have any idea how to fix it.Thanks in advance.

  • mtg khan asked 3 weeks ago
  • last active 3 weeks ago
0 votes
62 views

Dear all,

In our application we have 2 separate charts which are hosted in 2 different usercontrols displayed side by side.
What is the way to syhnonise for instance the zoom on this 2 chart ?

I have done that when chart are hosted in same control but have no idea how to do that in such case of 2 different control hosted

Do I need to create an attached property on second chart and pass something from chart 1 to chart 2 ?

Thanks for help

  • sc sc asked 3 weeks ago
  • last active 3 weeks ago
0 votes
63 views

hi, I wanted to display the cursor information (x, y value)on the text annotation like the following. I can only find the example of displaying as tooltip, but is it possible to show with the text annotation? Thank you!

  • may lym asked 3 weeks ago
  • last active 3 weeks ago
0 votes
61 views

Hello,

we are currently using SciChart 2D in our Application. I got the request to provide a 3D representation of one of our charts, so I started to download the newest Version of SciChart to get a trial on the 3D charts. I included the dll’s to our application and reworked the code to show a 3D chart instead. I think the code will work, but in our application I can’t see a chart. I just see a black rectangle (See attachement) with a text that 3D charts are only available in the 3D or SDK editions.

Can you help me?

Thanks,
Joerg

  • joerg asked 3 weeks ago
  • last active 3 weeks ago
0 votes
71 views

I found the one line of code to request a print from a scichart surface. However, when I would run it, I found that it had cut off the bottom portion such that you didn’t get the X axis numbers to show. After playing with different approaches it seems that the printing is somewhat dependent on my margins and what the current width and height are of the surface. I was eventually able to come up with something that has the full plot show up in an xps file. When I print to my printer it clips off part of it still. Does anyone have some direction on how to get this to work with whatever printer may be selected? Do I have to try and find another way?

0 votes
70 views

Hello, I used example “Realtime Ticking Stock Charts” from yout SciChart application. It works fine.But when I load another data from other source then I have problem with AutoRange Y axis. The AutoRange feature does not work properly. See attachment, the left part of image shows zoomed chart, the right part unzoomed. You can see that on left image are cut under value 11834. The AutoRange is set to Always and data are ordered by time. Where could be the problem?

Thanks

  • Oto Dusek asked 3 weeks ago
  • last active 3 weeks ago
-1 votes
80 views

Dear all,

I try to implement the sample Drag Horizontal threshold to my app but it is partially working.
I have done exactly the same, but for some reason in my application the function OverrideFillBrush, OverrideStrokeColor, are call only once time and never gets call again.

Any idea when those function are called and why they are not called when threshold is trigged ???

My threashold trigger property is trig each time it change but never change color of my chart based on the trigger value

Thnaks for help
regards

  • sc sc asked 4 weeks ago
  • last active 3 weeks ago
0 votes
66 views

Hello all,

I have made a custom RenderableSeries, but after adding the series to my ChartSeries, it shows the seriesName in the legend (as desired), but it does not show the Stroke color I assigned to this. It does however, show the stroke color in the legend for the default RenderableSeries.

Could someone please help me out? Thanks in advance!

Custom RenderableSeries sourcecode:

    class TheoreticDistanceBetweenTracksRenderableSeries : FastImpulseRenderableSeries
{
    protected override void InternalDraw(IRenderContext2D renderContext, IRenderPassData renderPassData)
    {
        if (!(renderPassData.PointSeries is Point2DSeries dataPointSeries)) return;

        var pointSeries = CurrentRenderPassData.PointSeries;

        for (var i = 0; i < dataPointSeries.Count; i++)
        {
            var index = dataPointSeries.Indexes[i];

            var metadata = (DistanceBetweenTracksMetaData)(DataSeries.HasMetadata ? DataSeries.Metadata[index] : null);
            if (metadata == null) continue;

            var point = pointSeries[i];

            if (double.IsNaN(point.Y))
                continue;

            var x1 = (float)renderPassData.XCoordinateCalculator.GetCoordinate(metadata.MeasureFrom);
            var x2 = (float)renderPassData.XCoordinateCalculator.GetCoordinate(metadata.MeasureTo);

            var y1 = (float)renderPassData.YCoordinateCalculator.GetCoordinate(metadata.MinimumDistance);
            var y2 = (float)renderPassData.YCoordinateCalculator.GetCoordinate(metadata.MinimumDistance);

            DrawLine(renderContext, x1, x2, y1, y2);
        }

        renderContext.SafeDispose();
    }

    private void DrawLine(IRenderContext2D renderContext, double x1, double x2, double y1, double y2)
    {
        using (var pen = renderContext.CreatePen(Stroke, false, 3f, Opacity, null, PenLineCap.Flat))
        {
            var drawingHelper =
                SeriesDrawingHelpersFactory.GetSeriesDrawingHelper(renderContext, CurrentRenderPassData);

            var pt1 = TransformPoint(new Point(x1, y1), false);
            var pt2 = TransformPoint(new Point(x2, y2), false);

            drawingHelper.DrawLine(pt1, pt2, pen);
        }
    }
}

the RenderableSeries is then initiated trough a method:

        private TheoreticDistanceBetweenTracksRenderableSeries CreateTheoreticDistanceSerieMinimum(XyDataSeries<double, double> dataSeries, string title)
    {
        var renderableSeries = new TheoreticDistanceBetweenTracksRenderableSeries
        {
            Tag = title,
            DataSeries = dataSeries,
            DrawNaNAs = LineDrawMode.Gaps,
            Stroke = (Color)Application.Current.TryFindResource("MeasurementColor1"),
            StrokeThickness = 2,
            IsSelected = true,
            YAxisId = "MainSeriesYAxis"
        };

        TooltipModifier.SetIncludeSeries(renderableSeries, true);

        return renderableSeries;
    }

and this method is invoked here:

var dataSerieMinimum = new XyDataSeries<double, double>
        {
            SeriesName = Properties.Resources.TDBT_Minimum,
            AcceptsUnsortedData = false
        };
        dataSerieMinimum.Append(xData, yData, pointMetaDatas);

        chartSeriesViewModels.Add(new ChartSeriesViewModel(dataSerieMinimum, CreateTheoreticDistanceSerieMinimum(dataSerieMinimum, ChartTitleFactory.GetTitle(chartViewModel.ChartType))));

Could anyone help me out? Thank you!

0 votes
63 views

Dear all,

I try to align properly the chart overview just below the main chart view port edges. The problem I have is that when we add a legend of a Axes label, then it is fully part of the chart control and alignement gets a bit weird and bad looking. (See picture attached)

How can I adjust the overview chart in order it perfectly fit the main chart view port left and right ?

Thnaks for help

regards

  • sc sc asked 4 weeks ago
  • last active 3 weeks ago
0 votes
62 views

Hello
Do heatmap dataseries support logarithmic axes? i have a heatmap chart and a line (pic 1), which need to be drawn in logarithmic scale, but i get no heatmap chart and the line is drawn correctly (pic 2) when switch axis type to logarithmic. Something i’m likely to get is on pic 3 .
thanks in advance

0 votes
67 views

Sometimes the X axis does not display the coordinOne of the pictures in the appendix is normal and one shows incorrect.ates when the chart is moved.
How to solve?

1 vote
80 views

Hi all,

I am trying to save a copy of my chart in form of a “Png” image. However I keep getting the following exception:

“Element already has a logical parent. It must be detached from the old parent before it is attached to a new one”

I was wondering if anyone could help me passing through this.

Here is what I do:

I have a main chart surface in my program of which properties are bound to my ViewModel. For instance, as can be seen from the snippet below, my SciChartSurface’s YAxes is bound to an AxisCollection that resides in my ViewModel. Same thing is done for the RenderableSeries, Annotations, ChartModifierGroup, ChartVisibility and the XAxis properties of my Chart Surface:

<sci:SciChartSurface Grid.Row="1" Grid.Column="0"  
                         RenderableSeries="{Binding SciChartSeriesViewModels}"    
                         Padding="0,8,0,2"                                         
                         sci:ThemeManager.Theme="BrightSpark"                                       
                         YAxes="{Binding SciChartYAxesCollection, Mode=TwoWay}"                                         
                         AutoRangeOnStartup="True"                                       
                         Annotations="{Binding ChartAnnotations}"                                     
                         x:Name="ApplicationSciChart"                                       
                         ChartModifier ="{Binding ChartModifierGroup}"
                         BorderBrush="LightSlateGray"
                         BorderThickness="1"
                         Visibility="{Binding ChartVisibility}"
                         XAxis="{Binding SciChartXAxis}">
    </sci:SciChartSurface>

Now, In order to save a copy of my chart into a “Png” file, I created a new SciChartsurface in my Viewmodel. This newly created chart is desired to be rendered in the memory so I can save it as an Image (Very similar to what is instructed in: Screenshots, Printing and Export to XPS Traingin module. Somewhere in my ViewModel, after I generated all the required data for creating my chart, I call a function to form a new SciChart (rendered in memory) and perform the saving action:

private void SaveChart()
    {
        SciChartSurface AppSciChart = new SciChartSurface()
        {
            RenderableSeries = SciChartSeriesViewModels,
            XAxis = new TimeSpanAxis(),
            YAxes = SciChartYAxesCollection,
            ChartTitle = "Rendered in memory",
            Annotations = ChartAnnotations
        };

        var parent = AppSciChart.Parent;
        AppSciChart.Width = 1920;
        AppSciChart.Height = 1080;

         ThemeManager.SetTheme(AppSciChart, "BrightSpark");
         AppSciChart.ExportToFile("C:\\Chart.png",SciChart.Core.ExportType.Png, false);

    }

The RenderableSeries, YAxis and Annotations of the Chart Surface in the above code (AppSciChart) are the same as the ones I used for my main chart in my XAML code (First Snippet above).

My main chart surface in my application shows up fine, and performs what it is supposed to, but as soon as the SaveChart() is called, the program stops with an Unhandled Exception: System.InvalidOperationException: ‘Element already has a logical parent. It must be detached from the old parent before it is attached to a new one.’

I was wondering if anybody could let me know what I am possibly missing here!

Many thanks!

0 votes
86 views

Dear all,

I have an MVVM model which host the property ChartDataSeries as below :

 public ObservableCollection<IRenderableSeriesViewModel> ChartDataSeries
    {
        get { return _seriesViewModels; }
        set
        {
            SetProperty(ref this._seriesViewModels, value);
        }

What I ham trying to do is to identifier the selected serie user select in the chart and find it afterward in the ChartDataSeries collection in order to set a property IsSelected=true but trouble is that I cannot reach the selected Data serie from the collection.

I have bee through your sample but could not get it either

Any y help or idea how to do ?

regards

0 votes
83 views

There’s a build error when implementing IPointMarkerPaletteProvider, IFillPaletteProvider, or IStrokePaletteProvider.

MainActivity_P.java:50: error: isAttached() in MainActivity_P cannot override isAttached() in PaletteProviderBase
    public boolean isAttached ()
                   ^
    overridden method is final



 MainActivity_P.java:58: error: attachTo(IServiceContainer) in MainActivity_P cannot override attachTo(IServiceContainer) in       PaletteProviderBase
    public void attachTo (com.scichart.core.IServiceContainer p0)
                ^
    overridden method is final



MainActivity_P.java:66: error: detach() in MainActivity_P cannot override detach() in PaletteProviderBase
    public void detach ()
                ^
    overridden method is fina

What’s wrong with it? See the attached project to reproduce the issue.

  • rubs00 asked 4 weeks ago
  • last active 4 weeks ago
0 votes
83 views

How to achieve per-point shapes? I need to have, say, triangle, ellipse, and square shapes on a single line series. It’s pretty straightforward for iOS by overriding the StyleForPoint() method and providing shapes and colors. However, I had hard times figuring it out for Android (Xamarin). I found how to change colors of markers but not shapes. Could anyone help me with this, please?

  • rubs00 asked 4 weeks ago
  • last active 4 weeks ago
1 vote
77 views

I have a real time charting program that is getting data from accel sensors. When the sampling is complete, I allow them to add annotations to the graph. I also have the double-click ZoomExtentsModifier active, which normally works great. I added a text annotation but when I double-click it doesn’t include the text annotation in the extents and as a result the text is not showing on the screen. Is there something I am doing wrong? I don’t want the user to get confused when the text isn’t visible. I allow them to save and re-load so on the re-load the text doesn’t show unless the user zooms out.

0 votes
79 views

Hello,

I have a problem with chart layout presentation. Just right after application starts the view is as you can see in the picture chart_empty.png. But if the app is maximised or the size is changed, by dragging one of the window edge, the view is OK, as you can see in the second pic. AutoRange on XAxis is set to “Always” but on YAxis is set to “Never” because I need to synchronise them between each other. What should I do?

Marek

0 votes
67 views

Dear all,

I have implemented in our application the “custom overview control” base on your sample which allows chart navigation through the scroolbar.

I was wondering that if we have 2 chart with 2 different series, does the custom overview control could work to zoom on both chart at same time ?

Regards

  • sc sc asked 4 weeks ago
  • last active 3 weeks ago
0 votes
71 views

I’m attempting to export a heatmap to .png using the SciChartSurface.ExportToFile() method. The problem is the corresponding HeatmapColorMap is not included in this exported image.

Is there a way to render the image and include the HeatmapColorMap as an overlay?

0 votes
0 answers
87 views

Hi all,

As the title indicates, I am trying to get mouse cursor position (Coordinates) from a SciChartSurface in MVVM manner.

I have lots of data bindings to my chart properties in my View Model in the background. This following snipped is a copy of my XAML code in which I have all the data bindings set:

<sci:SciChartSurface Grid.Row="0" Grid.Column="0"
                         RenderableSeries="{Binding SciChartSeriesViewModels}"     
                         Padding="0,8,0,2"                                         
                         sci:ThemeManager.Theme="BrightSpark"                                       
                         YAxes="{Binding SciChartYAxesCollection,Mode=TwoWay}"                                         
                         AutoRangeOnStartup="True"                                       
                         Annotations="{Binding ChartAnnotations}"                                     
                         Name="ApplicationSciChart"                                       
                         ChartModifier ="{Binding ChartModifierGroup}"
                         BorderBrush="LightSlateGray"
                         BorderThickness="1"
                         Visibility="{Binding ChartVisibility}">

        <sci:SciChartSurface.XAxis>
            <sci:TimeSpanAxis AxisTitle="Time"
                              AutoRange="Once" GrowBy="0.03,0.001"
                              TextFormatting=""/>
        </sci:SciChartSurface.XAxis>

  </sci:SciChartSurface>

As can be seen from the code above, the ChartModifier property is one of the items that has Data binding to an instance of a ModiferGroup I have created in my View-Model in the background. The following code is a method that adds members to that ModiferGroup (called ChartModiferGroup in my View-Model):

 private void CreateChartModifiers()
    {
        var rubberBandXyZoomModifier = new RubberBandXyZoomModifier
        {
            ExecuteOn = SciChart.Charting.ChartModifiers.ExecuteOn.MouseLeftButton,
            RubberBandFill = (SolidColorBrush)(new BrushConverter().ConvertFrom("#33FFFFFF")),
            RubberBandStroke = Brushes.SteelBlue, 
            RubberBandStrokeDashArray = new DoubleCollection {2.0, 2.0}
        };

        var zoomPanModifier = new ZoomPanModifier
        {
            ExecuteOn = SciChart.Charting.ChartModifiers.ExecuteOn.MouseMiddleButton,
            ClipModeX = SciChart.Charting.ClipMode.None
        };

        var yAxisDragModifier = new YAxisDragModifier
        {
            DragMode = SciChart.Charting.AxisDragModes.Scale
        };

        var xAxisDragModifier = new XAxisDragModifier
        {
            DragMode = SciChart.Charting.AxisDragModes.Pan
        };

        var mouseWheelZoomModifier = new MouseWheelZoomModifier();

        var zoomExtentsModifier = new ZoomExtentsModifier
        {
            ExecuteOn = SciChart.Charting.ChartModifiers.ExecuteOn.MouseDoubleClick
        };

        var cursorModifier = new CursorModifier
        {
            ReceiveHandledEvents = true,
            ShowAxisLabels = false
        };


        var probeline = new VerticalLineAnnotation()
        {
            Stroke = Brushes.LightSlateGray,
            IsEditable = true,
            ShowLabel = true,
            LabelPlacement = LabelPlacement.Axis,
            Visibility = Visibility.Visible,
            IsHidden = false,
            IsEnabled = true,
            X1 = TimeSpan.FromMilliseconds(-100),
            YAxisId = "Triggered",
            StrokeDashArray = new DoubleCollection { 2.0,2.0},
            StrokeThickness = 1
        };

        var verticalSliceModifier = new VerticalSliceModifier
        {
            IsEnabled = true,
            ShowAxisLabels = true,
            Style = probeline.Style
        };
        verticalSliceModifier.VerticalLines.Add(probeline);


        ChartModifierGroup.ChildModifiers.Add(rubberBandXyZoomModifier);
        ChartModifierGroup.ChildModifiers.Add(rubberBandXyZoomModifier);
        ChartModifierGroup.ChildModifiers.Add(zoomPanModifier);
        ChartModifierGroup.ChildModifiers.Add(yAxisDragModifier);
        ChartModifierGroup.ChildModifiers.Add(xAxisDragModifier);
        ChartModifierGroup.ChildModifiers.Add(mouseWheelZoomModifier);
        ChartModifierGroup.ChildModifiers.Add(zoomExtentsModifier);
        ChartModifierGroup.ChildModifiers.Add(verticalSliceModifier);
        ChartModifierGroup.ChildModifiers.Add(cursorModifier);
    }

What I am trying to do next, is to add functionality in my application, such that I can add more VerticalSliceModifiers to my ChartModifierGroup when a button is pressed. In order to do that, I will require having access to the Mouse cursor position of my SciChartSurface to set the X1 property of the VerticalLineAnnotation, that would be used for the VerticalSliceModifiers (to be created).

In simple words, every time I press a button, I need the position of the mouse pointer to get captured and used as the location of the new VerticalSliceModifer that I am going to create.

I have already read many of the examples and documentation of Sci-Chart such as: Vertical Slice Tooltips Example. However, in this example, the mouse pointer location is accessed is under the xaml.cs and not inside an actual View-Model.

I was wondering if anybody could let me know how I can get access to my SciChartSurface mouse pointer position using true MVVM model.

0 votes
79 views

Dear all,

In the application business logic I need to implement for the chart, I have a request to add 1 button at each top corner of the chartSurface.

What is the way to do that ?

I have try to play with WPF adorner but seems too complicated to attached them

Any other solution ?

  • sc sc asked 4 weeks ago
  • last active 3 weeks ago
0 votes
91 views

Please help me on this, as I want to draw/combine multiple charts on a single surface and I am getting Json values from Api & also attaching the Graph look which I want.

Help me how I can achieve this.

Thanks in advance.

Showing 1 - 50 of 2k results