Pre loader

Forums

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

0 votes
5k views

I saw similar topic that can export HeatMapColorMap with help of BoxAnnotation. But BoxAnnotation can be placed within plot area. I want to have ColorMap outside of Plot Area, may be next to y-Axis. But it should not be obstructing the plotting area. Any idea?

1 vote
5k views

I’m sorry I couldn’t attach images because of security.

Zoom out
VisibleRange X1 min VisibleRange X1 max
    +——————————–+ VisibleRange Y1 min
    |           |
    |           |
    |s=================e|
    |           |
    |           |
    +——————————–+ VisibleRange Y1 max

s : Point Start, e : Point End

In this state, Excute Zoom In Then “s====================e” disappears when the starting point is smaller than min and the end point is greater than max.

Zoom In : “s====================e” disappear
VisibleRange X2 min VisibleRange X2 max
    +——————————–+ VisibleRange Y2 min
    |           |
    |           |
    |           |
    |           |
    |           |
    +——————————–+ VisibleRange Y2 max

I want this chart
VisibleRange X1 min VisibleRange X1 max
    +——————————–+ VisibleRange Y2 min
    |           |
    |           |
    |===================|
    |           |
    |           |
    +——————————–+ VisibleRange Y2 max

How do I draw when a chart is not drawn at the location of a given data using “CustomRenderSeries”?
“====” is a BOX(Rectangle), not a line.

The program source used for coding.
I am currently using
renderableSeries.ResamplingMode = ResamplingMode.None;

// DataInsert.cs

var renderableSeries = new DieRenderableSeries(positionOfDie, _dieLayout);

foreach (var pl in _dieLayout.PlaneLayout._plane)
{
  Plane plane = pl.Value;
  foreach (var ba in plane._bank)
  {
    Bank bank = ba.Value;

    foreach (var matList in bank.NandMat)
    {
      var renderableSeries = new DieRenderableSeries(positionOfDie, _dieLayout);
      List<KeyValuePair<Point, Mat>> matDataList = new List<KeyValuePair<Point, Mat>>();

      foreach (var mat in matList)
      {
        mat.PointType = PointType.Start;
        matDataList.Add(new KeyValuePair<Point, Mat>(new Point(startX + mat.X1, startY + mat.Y1), mat));
      }

      var myList = matDataList.OrderBy(x => x.Key.X)
              .ThenBy(x => x.Key.Y)
               .ToList();

      var dataSeries = new MatDataSeries<double, double> { SeriesName = “Fault” };
      dataSeries.AcceptsUnsortedData = false;
      using (dataSeries.SuspendUpdates())
      {
        for (var i = 0; i < myList.Count(); i++)
        {
          Point myPoint = myList[i].Key;
          dataSeries.Append(myPoint.X, myPoint.Y, myList[i].Value);
        }
      }

      sciChart.RenderableSeries.Add(renderableSeries);
      renderableSeries.DieX = dieX;
      renderableSeries.DieY = dieY;
      renderableSeries.DataSeries = dataSeries;
      renderableSeries.CountOfRenderableSeries = dataSeries.Count;
      renderableSeries.ResamplingMode = ResamplingMode.None;
    }
  }
}

// CustomRenderableSeries.cs

for (var i = 0; i < _series.Count; i++)
{
  var data = renderPassData.PointSeries[i];
  var mat = (Mat)DataSeries.Metadata[data.Index];

  Point point = GetCoordinatesFor(data.X, data.Y);
  Point point2 = GetCoordinatesFor(data.X + mat.Width, data.Y + mat.Height);

  IBrush2D brush = _dicBrush[mat.TypeX];
  var pen = _bgndPens[mat.IsRedun && IsRedunVisibled ? 1 : 0];

  drawingHelper.DrawBox(point, point2, brush, pen, 0);
}

0 votes
6k views

Hello,

I had a need to get the example of spline series you show into my application.

I wanted to also implement data point selection. Currently it’s not working out-of-the-box, and I wanted to know if you can give me some pointers on what methods should I modify, or if it’s too complex.

Thank you very much.
Sebastian

0 votes
5k views

Hi,

every time we update the chart, the lines jump around and it seems we need to have a delay before calling zoomExtents() for it to work properly – but even with 500ms delay, zoomExtents still does not work always (see 0:27 of below video- what helped was manually moving the chart). We want a smooth transition when changing timescale. My guess is we are misusing the library somehow, but after thorough reading through the docs we could still not fix this.

Here is a video showcasing this problem:

https://screencast-o-matic.com/watch/cqiUjxOkV6

Here is the code that updates the surface. Basically we clear the Renderable Series of surface before we show new data. Full code where we make charts (on each update) is seen here:

// OHLC Chart Data
ohlcData.append(ohlcSeries.getDateData(), ohlcSeries.getOpenData(), ohlcSeries.getHighData(), ohlcSeries.getLowData(), ohlcSeries.getCloseData());

// Bollinger Upper Band
XyDataSeries<Date, Double> bollUpper = sciChartBuilder.newXyDataSeries(Date.class, Double.class).withSeriesName("BBU").build();
bollUpper.append(ohlcSeries.getDateData(), upperBB_data);
BaseRenderableSeries seriesBBU = sciChartBuilder.newLineSeries().withDataSeries(bollUpper).withStrokeStyle(Color.rgb(70,130,180), 1f).withYAxisId(PRICES).build();
seriesBBU.setClipToBounds(true);

//* ... some more lines and indicators built here ... */

// clear surface on update
if(!surfaceOhlc.getRenderableSeries().isEmpty())
    surfaceOhlc.getRenderableSeries().clear(); 

// create series
seriesMA.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_ma", true));
seriesEMA.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_ema", true));
seriesBBU.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));
seriesBBL.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));
seriesBBM.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));

surfaceOhlc.getRenderableSeries().add(sciChartBuilder.newCandlestickSeries().withDataSeries(ohlcData).withSeriesInfoProvider(new CustomOHLCSeriesInfoProvider()).withYAxisId(PRICES).build()); // todo : setClipToRounds(true)
surfaceOhlc.getRenderableSeries().add(seriesBBU);
surfaceOhlc.getRenderableSeries().add(seriesBBL);
surfaceOhlc.getRenderableSeries().add(seriesBBM);
surfaceOhlc.getRenderableSeries().add(seriesEMA);
surfaceOhlc.getRenderableSeries().add(seriesMA);

surfaceOhlc.getAnnotations().add(annPrice);
  • Primoz asked 5 years ago
  • last active 5 years ago
0 votes
0 answers
12k 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
10k views

Hi,

I’m having an exception thrown when I try to dynamically add an annotation. I’m using the example on your site as reference.I’m sure its something I’m overlooking. But I can’t figure out what it is. I have attached my code here, can you tell me what I’m doing wrong here. I’m trying to add a Line annotation when the user clicks on the context menu.

Thanks,
Deepak

0 votes
6k views

can you please provide me source code (XML as well as Java) for the medical app. I have seen ECG example code but it is only for ECG. I want to show all parameters diplayed in pic.

0 votes
0 answers
6k views

Hi,

I am new to Xamarin and looking for possibilities how to use Xamarin.Android (later Xamarin.iOS too) chart in Xamarin.Forms shared code.
I know SciChart working on it, but at this moment I need solution.

I have alredy read about these:
– Custom Renderers (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer)
– Native Views (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-views)

Which is better?
Does anybody has an exact example or documentation to how to use it with SciChart?

Bests,
Roland

0 votes
7k views

Hello Team,

I am evaluating Sci Chart for using in our production applications. I am creating a POC for the same if it fits our requirements.

I have created a scattered chart successfully. Our next requirement is to select a part of the chart, basically, like data from this date to this date. I was trying to explore VerticalSlice Modifier for it. My purpose was that the user will place the sliders on the start date and end date and we will get those values. Can you tell me if this approach is correct or suggest a different technique, annotation or marker, any other modifier to select data between two dates?

<Grid Grid.Row="1">
        <s:SciChartSurface s:ThemeManager.Theme="BrightSpark">
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <s:VerticalSliceModifier Name="sliceModifier">
                        <s:VerticalSliceModifier.VerticalLines>
                            <s:VerticalLineAnnotation X1="{Binding SelectedStartDate, Mode=TwoWay}" IsEditable="True"/>
                            <s:VerticalLineAnnotation X1="{Binding SelectedEndDate, Mode=TwoWay}" IsEditable="True"/>
                        </s:VerticalSliceModifier.VerticalLines>
                    </s:VerticalSliceModifier>
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Number of Samples (per Series)"/>
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Value"/>
            </s:SciChartSurface.YAxis>
            <s:SciChartSurface.RenderableSeries>
                <s:XyScatterRenderableSeries x:Name="scatterSeries" Stroke="OrangeRed" DataSeries="{Binding Chirps}">
                    <s:XyScatterRenderableSeries.PointMarker>
                        <s:EllipsePointMarker Width="9" Height="9" Fill="SteelBlue" Stroke="LightSteelBlue" StrokeThickness="2"/>
                    </s:XyScatterRenderableSeries.PointMarker>
                </s:XyScatterRenderableSeries>
            </s:SciChartSurface.RenderableSeries>
        </s:SciChartSurface>
    </Grid>

Thanks for the help and support

1 vote
7k views

We are using the VerticalLineAnnotation and want to change it’s location (X1 property) in the viewmodel.

Annotations are bound like this:

<s:SciChartSurface
           ...
           Annotations="{s:AnnotationsBinding Annotations}"

to the property:

public ObservableCollection<IAnnotationViewModel> Annotations { get; private set; }

The collection contains this association:

this.nowAnnotation = new VerticalLineAnnotationViewModelEx()
        {
            X1 = TimeSpan.FromSeconds(0),
            StyleKey = "NowAnnotationStyle"
        };

To change the location we change the value of X1:

nowAnnotation.X1 = value;

Calling that didn’t have a direct effect on the UI unless the user does any action which redraws the chart.

We created a style which sets an attached property to pass the VerticalLineAnnotation to the view model, this works fine.

<Style TargetType="s:VerticalLineAnnotation" x:Key="NowAnnotationStyle">
                    <Setter Property="viewModels:VerticalLineAnnotationViewModelEx.PassIAnnotation" Value="True" />
                </Style>

And we added a Refresh method to VerticalLineAnnotationViewModelEx and call it after setting X1:

nowAnnotation.X1 = value;
nowAnnotation.Refresh();

The first implementation of the Refresh method we did was:

public void Refresh()
    {
        this.Annotation.Refresh();
    }

From the documentation this should redraw the annotation without redrawing the whole chart, but it had no effect.
https://www.scichart.com/documentation/win/current/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.Annotations.AnnotationBase~Refresh.html

It only started working after changing to this:

public void Refresh()
    {
        this.Annotation.ParentSurface.InvalidateElement();
    }

Is there a better way to do it, shouldn’t the first implementation work?

The complete code of VerticalLineAnnotationViewModelEx

public class VerticalLineAnnotationViewModelEx : VerticalLineAnnotationViewModel
{
    public static readonly DependencyProperty PassIAnnotationProperty = DependencyProperty.RegisterAttached(
        "PassIAnnotation", typeof(bool), typeof(VerticalLineAnnotationViewModelEx),
        new PropertyMetadata(default(bool), OnPassIAnnotationChanged));

    public IAnnotation Annotation { get; private set; }

    private static void OnPassIAnnotationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var verticalLineAnnotation = (VerticalLineAnnotation)d;
        ((VerticalLineAnnotationViewModelEx)verticalLineAnnotation.DataContext).Annotation = (IAnnotation)d;
    }

    public static void SetPassIAnnotation(DependencyObject element, bool value)
    {
        element.SetValue(PassIAnnotationProperty, value);
    }

    public static bool GetPassIAnnotation(DependencyObject element)
    {
        return (bool)element.GetValue(PassIAnnotationProperty);
    }

    public void Refresh()
    {
        //this.Annotation?.Refresh();
        this.Annotation?.ParentSurface.InvalidateElement();
    }
}
0 votes
11k views

Is it possible?

Or make box annotations fit screen height?
(even when zooming)

1 vote
13k views

Hallo,

I have a rollovermodifier wich only moves when i press the leftmousebutton down. This means that the rollover always stays at one place unless i press a mouse button. However as soon as the mouse leaves the chartarea the rollovermodifier disapears. Is there a way to avoid this behaivour? I would like the rollover to always stay visible.

I would also like to add a second rollovermodifier and have it move only when i click on the rollover. But after one whole day of trying i keep getting the error:
“Specified Visual is already a child of another Visual or the root of a CompositionTarget.”

In this methods line:

public override void OnModifierMouseMove(ModifierMouseArgs e)
{
     if(d) base.OnModifierMouseMove(e);
}
0 votes
3k views

Cant display any chart when init by SciChartSurface.create(HtmlElementId), how can I fix it ?

1 vote
3k views

RubberBandXyZoomModifier Zoom visibleRangeChanged not hitting when zooming. Can you check this? or any callback function when zooming the chart?

import {SciChartSurface} from "scichart/Charting/Visuals/SciChartSurface";
import {NumericAxis} from "scichart/Charting/Visuals/Axis/NumericAxis";
import {XyDataSeries} from "scichart/Charting/Model/XyDataSeries";
import {FastLineRenderableSeries} from "scichart/Charting/Visuals/RenderableSeries/FastLineRenderableSeries";
import {XyScatterRenderableSeries} from "scichart/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries";
import {EllipsePointMarker} from "scichart/Charting/Visuals/PointMarkers/EllipsePointMarker";
import {NumberRange} from "scichart/Core/NumberRange";
import {RubberBandXyZoomModifier} from "scichart/Charting/ChartModifiers/RubberBandXyZoomModifier";
import {ZoomExtentsModifier} from "scichart/Charting/ChartModifiers/ZoomExtentsModifier";
import {ZoomPanModifier} from "scichart/Charting/ChartModifiers/ZoomPanModifier";
import {EZoomState} from "scichart/types/ZoomState";
import { EExecuteOn } from "scichart/types/ExecuteOn";
import { EXyDirection } from "scichart/types/XyDirection";


async function initSciChart() {
    const {sciChartSurface, wasmContext} = await SciChartSurface.create("scichart-root");
    const xAxis = new NumericAxis(wasmContext);
    const yAxis = new NumericAxis(wasmContext);
    xAxis.visibleRangeChanged.subscribe((args) => {
        console.log("X Axis changed");
    });
    yAxis.visibleRangeChanged.subscribe((args) => {
        console.log("Y Axis changed");
    });
    sciChartSurface.xAxes.add(xAxis);
    sciChartSurface.yAxes.add(yAxis);
    const scatterSeries = new XyScatterRenderableSeries(wasmContext, {
        pointMarker: new EllipsePointMarker(wasmContext, {width: 7, height: 7, fill: "White", stroke: "SteelBlue"}),
    });
    const lineSeries = new FastLineRenderableSeries(wasmContext, {stroke: "#4083B7", strokeThickness: 2});
    sciChartSurface.renderableSeries.add(lineSeries, scatterSeries);
    const scatterData = new XyDataSeries(wasmContext, {dataSeriesName: "Cos(x)"});
    const lineData = new XyDataSeries(wasmContext, {dataSeriesName: "Sin(x)"});

    for (let i = 0; i < 1000; i++) {
        lineData.append(i, Math.sin(i * 0.1));
        scatterData.append(i, Math.cos(i * 0.1));
    }
    scatterSeries.dataSeries = scatterData;
    lineSeries.dataSeries = lineData;

    sciChartSurface.chartModifiers.add(new RubberBandXyZoomModifier({
        xyDirection: EXyDirection.XDirection
    }));
    const updateDataFunc = () => {
        const i = lineData.count();
        lineData.append(i, Math.sin(i * 0.1));
        scatterData.append(i, Math.cos(i * 0.1));
        if (sciChartSurface.zoomState !== EZoomState.UserZooming) {
            xAxis.visibleRange = new NumberRange(i - 1000, i);
        }
        setTimeout(updateDataFunc, 1 / 60);
    };
    updateDataFunc();
}

initSciChart();

Please check the example with v2.0.2146. Its working with older version and now its not working.
On the example the first time it will print the console. after that when zooming the change callback is not hitting.

0 votes
0 answers
6k views

Hello,

I have another question on the Heatmap 3D.

I have attached a sample app to show what I’m trying to accomplish. Essentially, I want my data points to contain NaN whenever there’s no data available for it. In that way if I want I could find out which are the points that have no data and create an interpolation throughout those points.

The problem is that If I initialize all my data points to NaN, and then I add the actual valid data, that data won’t be shown in the heatmap. I suspect it has something to do with the GradientColorPalette that probably doesn’t know what to do with a NaN.

Can you help me solve this issue? Maybe I’m using the API in a wrong way.

NOTE: If you comment the code lines inside the HeatmapModel class where it is initializing the data points with NaN and run it, you should get all red and some thin lines of different colors, which would be the ones that contain actual data. The idea is that all the red is not colored and show empty space and only show the fine lines, because 0 is a valid value.

NOTE: due to limiting uploading size, you’ll have to add the SciChart DLLs to the project manually.

Thank you!
Best regards,
Sebastian

0 votes
5k views

I’m trying to make sure I can get the full extents of the image before converting to something is useful for inclusion in a report; however, when I run the following code the image is not showing the entire zoomed out chart. The chart is however zoomed out when this function is complete.

Dispatcher.Invoke(() => CrosslineGraph.DoseChart.ZoomExtents());           
        BitmapSource bitmap = CrosslineGraph.DoseChart.ExportToBitmapSource();
        byte[] bytes;

        using (MemoryStream stream = new MemoryStream())
        {
            BitmapEncoder encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            encoder.Save(stream);
            bytes = stream.ToArray();
        }
0 votes
7k views

We want to find YValue for a given Xvalue. If there is no exact matching point in the series, in order to interpolate it is required to get closest two points on left and right side of the given XValue. I tried to use IXyDataSeries.FindIndex with SearchMode.RoundDown and SearchMode.RoundUp. I’ve got two points from the left side. Please have a look at below image. Is this the expected behaviour?

0 votes
12k views

Hi,

I would like to select different themes using MVVM.
Do you have an example how to do this?

Thanks,
Egbert

1 vote
11k views

Hi,

I have a dataseries I need to display on a log Axis – i have stripped out the <= 0 Y values and replaced them with NaN’s and set the chart to draw NaN’s as gaps which is all working as expected. The axis is a datetime x-axis and I’m plotting several Scatterseries on it.
I have a VerticalSliceModifier which the user sets to a particular point and the X value of that point is used to acquire further information from the database so for this feature the Y value is of no interest. I’ve overridden the MoveAnnotationTo() method in order to get the slicemodfier to “snap” to the next nearest point of any of the series shown.In order to do this I use :

HitTestInfo hitTestResult = _seriesToSnapTo.VerticalSliceHitTest(new Point(coordinates.X1Coord + horizOffset, 1));

The problem is that if the point is one of those with a Y Value of NaN the HitTestResult comes back as everything being “null” and I can’t get the XAxis Value i need.

I would have expected the HitTest to have returned an X value regardless of the Y value being a NaN. I really just want to snap to the next X Axis point ignoring the Y value. Is there something else I should be using to get the next X-axis point I need?

0 votes
14k views

Hello guys

How to change Crosshair annotation string format?
I need to round it to decimals. shall i make new Control Template?

  • VRueda asked 11 years ago
  • last active 8 years ago
0 votes
3k views

Hello,

I’m probably missing something obvious, but how can I change the font/colors of JUST the scichart legend (not axes labels or other text) in Android.

Thank you.

  • C Bolton asked 3 years ago
  • last active 3 years ago
0 votes
12k views

I am using SciChart to draw some graph on my application.
I use ZoomPanModifier to be able to zoom and drag the graph (with range limit).

<s:ZoomPanModifier ClipModeX="ClipAtExtents" XyDirection="XYDirection" ZoomExtentsY="True" ExecuteOn="MouseLeftButton" IsEnabled="True"/>

But the problem is when I drag to the edge of the graph, it will scale up automatically when I keep dragging.

Is there any way so that I can zoom in/out, drag graph (after zooming in), and no dragging and scaling up when I get to the edge of graph?

0 votes
7k views

I’m developing a CustomRenderableSeries with several dependency properties that controls how the series is displayed. When one of these properties changes I’d like to invalidate the series and have it redraw. What’s the best way to do this?

0 votes
0 answers
5k views

Hello,

I have a usercontrol in which there is SciChartSurface and Modifiers and this UserControl(Name = UCSciChart) have its own ViewModel(Name = UCSciChartViewModel). Now I have Another User Control(Name = TimeChartView) in which I placed UCSciChart usercontrol 1 for single mode and 16 for multiple mode. TimeChartView has its own view model (TimeChartViewModel). Now if click on series, the style applies, but if i click outside it does not goes to old style, it is in single mode. If i click on multiple mode, then there is multiple user control and all have their own view model. But in multiple mode, if i click on series no style is applied.

I am posting my code here:

UCSciChart.xaml


<s:SciChartSurface.ChartModifier>


<s:SeriesSelectionModifier.SelectedSeriesStyle>

</s:SeriesSelectionModifier.SelectedSeriesStyle>






</s:SciChartSurface.ChartModifier>

TimeChartView.xaml

<UniformGrid.ContextMenu>

</UniformGrid.ContextMenu>

0 votes
7k views

hi,
I have a class DigitalData and I want to create XyDataSeries as XyDataSeries<DigitalData, DateTime>

How can I pass this XyDataSeries to a renderable series viewmodel and I how can I use Index to plot in y axis as I am passing DigitalData to XyDataSeries.

public class DigitalData
{
public double Index { get; set; }
public DigitalQuality DigitalQuality { get; set; }
public DigitalState DigitalState { get; set; }
}

Please let me know if you are not clear.

0 votes
12k views

Hi guys,

I purchased sci chart recently and have been using it in our trading applications. We have a requirement to produce some reports around our activity that are not numeric or date time on the x-axis.

I assumed sci chart would be able to handle text on an axis but it seems that it cant. Is there any work around to this?!

We really do not want to have to buy another charting package just to produce some simple charts and we love sci chart for everything else…

0 votes
5k views

Hello,

I’m currently working on extending the StackedColumnRenderableSeries. I need to get notified within my SubClassSeries whenever the XAxis is changed.

What is the recommended way of doing this? I haven’t seen any events that I may attach to, nor any methods I could override that indicate this.

The only option I have found is overriding the metadata of the XAxisID dependency property and adding my own callback function over there, although I would prefer not to mess with metadata changes.

Any help will be appreciated.

Thank you very much.

Kind regards,
Sebastian

0 votes
10k views

Hi,
I’m struggling to get SciChart to draw a graph where both X and Y axes have values which go up and down.
ie, the data values in the horizontal (X) axes goes backwards.
I tried to attach a photo previously but the forum locked up. If you imagine the outline of a banana pointing to 2 o’clock , that is how the data would look when plotted.
Regards,
Andy

  • ajt asked 11 years ago
0 votes
9k 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 6 years ago
  • last active 6 years ago
1 vote
17k views

Hello. I need to provide custom point marker with height and width based on my data, but trying to implement BasePointMarker I have the center points but not the original data to make the width and height based in my original binding. Is there a solution to do that? Thank you.

Tommy Garcia.

0 votes
4k views

I’ve received this crash report for a long time since I use this SDK.
But now it’s the largest amount of crash report in the newest version.
Do you have any idea about this?
I use the SDK to show meter temperature and humidity data. It’s about 10k to 30k data show in the chart and every time the user has download the data or the user zoom, drag the chart will recalculate the min, max, avg number in the visible time range.
Thank you~

  • Switch Bot asked 4 years ago
  • last active 4 years ago
0 votes
6k views

Hello,
I would like to replace the standard “X” tooltip marker with a custom drawable. This article suggests that it is possible to customize the marker, but I wasn’t able to find any examples how to do it. Could you help me with that?
Regards,
Anna

  • Anna Lazar asked 6 years ago
  • last active 6 years ago
0 votes
6k views

I wanted to use a stepline-box chart in my javascript applications for ELD, I failed to find out a similar box graph in the javascript chart section. The graph I have really looking for is attached here.
Could anyone please help me out?

0 votes
3k views

Hi

I want to draw small circle and label to identify of accident position on the chart like as sell point on the sample picture.
But I don’t know how can I implement this on the code.

Please help me!

  • Bruce Juli asked 3 years ago
  • last active 3 years ago
0 votes
7k views

I am considering applying server-side licensing for my javerScript application.

In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support-dev.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)

However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)

I wonder if there is a sample code implemented in C++ for server-side licensing.

Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?

1 vote
6k views

When displaying data in the chart, the data will not start at the beginning/left of the chart, but there is a margin.
How can I set this margin to 0 so the data will be displayed directly after the left yAxis.
The same margin is also at the right of the chart. I also would like a much smaller margin there.

Thanks….

  • EJansen asked 8 years ago
  • last active 8 years ago
0 votes
0 answers
4k views

I looked at this thread but it doesn’t help me.

https://www.scichart.com/questions/wpf/dynamically-clearing-legends-from-the-legendmodifier

I have problem where an item is still shown in the legend even though no series is currently displayed on the chart.

For example.

  1. The SciChart RenderableSeries dependency property of my chart surface is a property in my view model named “Measurements”, I.e. ObservableCollection of IRenderableSeries.
  2. An ObservableCollection of another class named “ExampleList” is also in my view model.
  3. In a data grid elsewhere in the application a user selects 3 rows. The “ExampleList” collection now has 3 items in it. Part of the setter for that property is to call “Measurements.Clear()” and then follow that with a “Measurement.Add(newseries)” 3 times.
  4. When a user selects an individual item in the data grid that contains no points that could be displayed on the chart I only call “Measurements.Clear()” and I don’t subsequently called “Measurements.Add()”

My issue is that the legend never clears and shows the last series that was selected before selecting this new item which shouldn’t even be in the chart. It’s behaving as if the chart were not cleared; although I have verified that I definitely am calling “Measurements.Clear()”

0 votes
6k views

As seen in the picture above.I want to use ScichartScrollBar to control the left and right movement of all items in the ListBox,And it doesn’t prevent me from dragging individual items.

What I mean by that is that when I use ScichartScrollBar I can control everything, and when I drag a single ListBoxItem it doesn’t affect all the other ListBoxItems

What should I do to achieve this effect?

  • zhang yu asked 3 years ago
  • last active 2 years ago
1 vote
2k views

I remember asking about something similar many years ago with WPF, but in browser the problem seems more apparent.

Using the current data model (I can be fairly flexible on the backend, and don’t necessarily have to do things this way), for some of the plots I generate many series that do some funky overlapping stuff (example attached). In the extreme examples, this can be thousands of series (the total number of data points might be < 100k).

In these cases, drawing basically grinds to a halt. Zooms take seconds, the OS starts complaining that chrome is locked up — you get the idea.

Is there a better way to approach this sort of plot? Are there any tuning recommendations for this scenario?

0 votes
9k views

I have two series on chart. I need to obtain data index for particular position. The problem is that ICoordinateCalculator.TransformDataToIndex seems to work only for first data serie in chart. It yields correct indexes as long as dataValue is in first data serie range. Outside that range it returns max/min index of this serie.

What I need is to obtain Y data values for particular X data value for all series. I tried using that function to get index and then read Y value from DataSerie, but maybe there is other approach for this issue.

  • anth asked 11 years ago
0 votes
6k views

Dear all,

I have a set of sample data from 0 to 3000.
I have a customer request where user need to visually see some particular range of data highlighting with a vertical transparent rectangle.
For exemple I need to place on a graph a rectangle if data a between 0 to 300 and an other when sample are between 700 to 800

I have seen I can do that by coloring point within a range by using the color palet as seen in your sample, but is there a way to display rectangle and bind the width of the rectangle to the particular range ?

See picture below

regards

  • sc sc asked 6 years ago
  • last active 4 years ago
0 votes
6k views

Hi,

I was trying to get the max value on the y axis for the visible window, so that I can manually scale the y axis visible range (so I can control the increments and the y axis maximum). To get the max y data in the window, I’ve written in Kotlin:

var coordinateCalc = xUoAxes[0].createCoordinateCalculatorFrom(xUoAxes[0].visibleRange) //get visible range of coordinates
var coordMin = coordinateCalc.minAsDouble //debug var
var coordMax = coordinateCalc.maxAsDouble //debug var
var dataRange = yUoAxes.getAxisById("uoId").dataRange //debug var
var test = mapOf("test" to coordinateCalc)  //create map for getWindowedYRange, providing the coordinateCalculator
var windowedYRangeUo = yUoAxes.getAxisById("uoId").getWindowedYRange(test)  //I think this should pass back the same value as dataRange?

However, the getWindowedYRange result is significantly different from dataRange, and while debugging, there is only a single data point in yUoAxes.

I wasn’t sure if I’m using the right function, or if I’m using it incorrectly (or if this is even the correct approach to this problem)?

Thanks,
-Andy

0 votes
7k views

Currently we have two graph surfaces with two Y axes on each side and we need all of the Y axes to have fixed width size. Until now we were achieving that like this:
topGraphSurface.LeftAxisAreaForcedSize = 45;
topGraphSurface.RightAxisAreaForcedSize = 45;
bottomGraphSurface.LeftAxisAreaForcedSize = 45;
bottomGraphSurface.RightAxisAreaForcedSize = 45;

but since updating to the new SciChart v3 we get the error “SciChartSurface does not contain a definition for (Left)AxisAreaForcedSize”. I couldn’t find any information about this in the Migration guide, so is there a way to achieve this in the new version?

0 votes
6k views

What is the best way to add a label to the point marker? I was able to achieve this by creating a custom point marker and overriding the Draw method, but sometimes the spacing between the point marker and the text is a little off.

Here is what I did:

public override void Draw( IRenderContext2D context, IEnumerable<System.Windows.Point> centers )

looping through the centers and adding text

var size = _measuringGraphics.MeasureString( “my label”, new System.Drawing.Font( Core.Constants.UIConstant.GridFontFamily, 9 ) );
context.DrawText( new System.Windows.Rect( center, new System.Windows.Size( size.Width, size.Height ) ), Colors.Black, fontSize, “my label”);

Thanks,
Doug

0 votes
4k views

I made wpf project with MVVM. I added LineRenderableSeriesViewModel to the model. SelectedSeriesStyle contains StrokeThickness=3 property. When I click on series, the SeriesSelectionModifier set correctly the line thicknes, but when I set IsSelected property in model, the seriesline thickness not changing. The stroke and PointMarkerTemplate properties work correctly.
Why not changing StrokeThickness property by model?

  • Zsolt Huse asked 5 years ago
  • last active 5 years ago
0 votes
5k views

Hi…..
I could be able to set clip mode for X axis in ZoomPanModifier(), In the same way I would like to set clip mode Y axis but I couldn’t.
Is there is a way to do that?

  • sci chart asked 5 years ago
  • last active 4 years ago
1 vote
18k views

Hello,

Out team have several question about the framework:

  1. Is there a way to make SCIChartSurfaceView background transparent so that the user could see underlying views? We tried using background brush of clear color on SCIChartSurface and making SCIChartSurfaceView backgroundColor transparent but no avail.

  2. Is it possible to add translate/rotate/scale animation to markers/annotations from code?

  3. When using gradient brush with mountain renderable series we found a strange visual artifact (“Gradient artifact” image). Is there a way to fix it?

Best regards,
Vasiliy

0 votes
4k views

I am trying to change the 8 provided themes for example change the color and tick mark lengths. The link below shows how but my problem is I have no idea where to put the provided code. Do you have a complete example showing how to change the themes where to put the code and how to connect it all together?

https://www.scichart.com/questions/wpf/tick-line-style?tab=answers#sabai-questions-7753-add-answer

0 votes
0 answers
10 views

Hello,

I have a problem reading the position of the vertical line annotations. The function “getX1” returns type double (0 – 1) or date depending on whether the annotation has not changed its position. I found out from the documentation that the type returned depends on the coordinateMode. I set it to absolute. This change had no effect, unlike in library written in Java. Is it possible to set the default type? Can I ask for any guidance needed to solve the problem? The version of the library I am using is 4.4.2.5871.

Thanks in advance!
Paweł

0 votes
11k views

I’m trying to properly display a circle series as a circle. I’ve made sure the graph is not resizable, and set the GridLinesPanelStyle to ensure that it’s square. However, when do ZoomExtents on the ViewPortManager, it always adds a little buffer space on the Y axis but not the X so you end up with an ellipse. Is there any way to set and/or remove this buffer? You can see this in the image, the graph itself is square and the range on the X axis is 300, but on Y it’s a little bit bigger so what you see isn’t really a circle. Thank you.

  • AE Admin asked 7 years ago
  • last active 7 years ago
Showing 1 - 50 of 4k results

Try SciChart Today

Start a trial and discover why we are the choice
of demanding developers worldwide

Start TrialCase Studies