Pre loader

Category: WPF

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
10k views

In the online demo the Stacked side by side column chart says,
“The StackedColumnRenderableSeries can be used to render columns stacked one above another, side by side, or a Left or Right aligned Bar Chart.”
I’m just wondering how to tell the chart to stack side by side versus one above the other, etc.
Thanks.

0 votes
9k views

I have a custom label formatter which only takes int and covert to string. But for Histogram I need to plot X values with double values. So i cant use that Custom label formatter.

0 votes
14k views

Hallo,

I use the Mousewheelzoommodifier to zoom into the chart. How can i prevent the zoom to zoom into a minimum giving range?

0 votes
8k views

Hi i am new to SCiChart and i was wondering if there is an option to double click on screen and make it full screen or maybe some sort of un-dock it or open it in new window full screen?
Thx

1 vote
10k views

I understand how to bind properties when using WPF WVVM but in my case I am using SciChart hosted in an ElementHost so I’m doing everything in Windows Forms code behind.

I have draggable vertical line annotations working but I need to get the coordinates as the user drags them. Is that possible?

0 votes
13k views

Hi,

I’m using 2 annotation markers, one horizontal and one vertical.

In xaml:

            <SciChart:SciChartSurface.Annotations>
                <SciChart:HorizontalLineAnnotation HorizontalAlignment="Stretch" IsEditable="True" LabelPlacement="Axis" LabelTextFormatting="0.0" ShowLabel="True" Stroke="Orange" StrokeThickness="2" Y1="{Binding Path=UpRightMarkerYPos, Mode=TwoWay}" IsHidden="{Binding Path=TimeChartMarkerIsHidden}"/>
                <SciChart:VerticalLineAnnotation VerticalAlignment="Stretch" IsEditable="True" LabelPlacement="Axis" LabelTextFormatting="0.0" ShowLabel="True" Stroke="Orange" StrokeThickness="2" X1="{Binding Path=BowMarkerXPos, Mode=TwoWay}" IsHidden="{Binding Path=TimeChartMarkerIsHidden}"/>
            </SciChart:SciChartSurface.Annotations>

I’ve set the LabelPlacement on Axis, so I expect that the labels will not be drawn over the graphical data.
It works fine for the Vertical one, but the horizontal marker will display the label over the data, so I can’t see a part of my graph anymore.
How can I position the label so it will not be on top of the graphical data?

Thanks,
Egbert

3 votes
16k views

Hi

I am trying to allow my user to hide/show annotations by binding the visibility property, but I can’t seem to get it to work. Actually when I manually set visibility to Hidden it’s still there. Is that just not implemented?

Lisbeth

0 votes
12k views

In the oil industry a well survey is usually displayed by a series of points connected by arcs. An arc is very close to the actual path a drill will take between points on a survey. Survey points are about 90 feet apart, so connecting them with a straight line looks ugly. Which method should I override to accomplish this?

If I get ambitious, I may also consider using Bezier curves to connect points, as this could be useful to represent geological boundaries as a background for my well survey plots.

I have attached a picture showing the type of plots I need to make. The red line is a survey and the background represents geological layers. The survey is presently connected with straight lines, which makes it difficult to determine precisely where the survey intercept the boundaries.

0 votes
9k views
  <s:SciChartSurface x:Name="sciChart" Grid.Row="0"
                       s:ThemeManager.Theme="Chrome"
                       LeftAxesPanelTemplate="{StaticResource YAxesPanel}"
                       RightAxesPanelTemplate="{StaticResource YAxesPanel}">

        <s:SciChartSurface.RenderableSeries>
            <s:FastLineRenderableSeries SeriesColor="#FFFF1919" YAxisId="Ch0" />
            <s:FastLineRenderableSeries SeriesColor="#FFFC9C29" YAxisId="Ch1" />
            <s:FastLineRenderableSeries SeriesColor="#FFFF1919" YAxisId="Ch2" />
            <s:FastLineRenderableSeries SeriesColor="#FFFC9C29" YAxisId="Ch3" />
        </s:SciChartSurface.RenderableSeries>

        <s:SciChartSurface.YAxes>
            <s:NumericAxis x:Name="Ch0" Style="{StaticResource YAxisStyle}" Id="Ch0" Grid.Row="0" DrawMajorTicks="False" DrawLabels="False" />
            <s:NumericAxis x:Name="Ch1" Style="{StaticResource YAxisStyle}" Id="Ch1" Grid.Row="2" />
            <s:NumericAxis x:Name="Ch2" Style="{StaticResource YAxisStyle}" Id="Ch2" Grid.Row="4" />
            <s:NumericAxis x:Name="Ch3" Style="{StaticResource YAxisStyle}" Id="Ch3" Grid.Row="6" />
        </s:SciChartSurface.YAxes>

        <s:SciChartSurface.XAxis>
            <s:NumericAxis Name="xAxis" />
        </s:SciChartSurface.XAxis>


        <s:SciChartSurface.Annotations>
                    <s:BoxAnnotation YAxisId="Ch1" Name="boxAnnotationCh1" Background="#33FF6600" BorderBrush="#77FF6600" BorderThickness="1" CornerRadius="3" IsEditable="true" />
            <s:BoxAnnotation YAxisId="Ch2" Name="boxAnnotationCh2"  Background="#33FF6600" BorderBrush="#77FF6600" BorderThickness="1" CornerRadius="3" IsEditable="true" />
            <s:BoxAnnotation YAxisId="Ch3" Name="boxAnnotationCh3"  Background="#33FF6600" BorderBrush="#77FF6600" BorderThickness="1" CornerRadius="3" IsEditable="true" />
                     </s:SciChartSurface.Annotations>
    </s:SciChartSurface>

How can I make BoxAnnotations editable?
I can’t move the boxes in the chart.

0 votes
12k views

I am working on an application where I have multiple XY data series. For one of the series, we are producing annotation data for some of the points. There are 8 different types of annotations that can be created. Based on the response you gave to a previous question, I am creating the annotations as separate data series instead of as actual annotation objects since there are thousands of them. Performance starts to suffer as the number of annotations increases.

The issue I’m running into now is the number of series is now 14 which is unwieldy for displaying in a legend. My current legend is horizontally oriented as shown in the attached image. I would prefer that the user not have to scroll to view all of the legend items and am trying to figure out how to achieve that.

Is there a way to specify a fixed width for the legend and have items wrap to a new line if there is not enough room for them? I didn’t see that as being an option for the standard legend template.

Also, is there a way to use multiple legends for a chart? Ideally it would be nice to split the series that are associated with annotation data into their own legend instead of mixing them in with the legend for the normal data. The SeriesInfo object doesn’t appear to have any property that would allow me to categorize the data.

Thanks,
Scott

  • sdamge asked 8 years ago
  • last active 8 years ago
0 votes
0 answers
9k views

SciChart may be a newcomer to the WPF charting market, but is getting great reviews. Take a moment to read some of our testimonials here.

If you have a testimonial or would be willing to give your permission to use your client logo on our homepage, please post in this forum or contact us, we would be extremely grateful for the endorsement!

1 vote
18k 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?

  • srillaert asked 10 years ago
  • last active 10 years ago
0 votes
13k views

Hello there,

I want to switch (per ComboBox) between the data-values at the x-axis:
1. Display data index[x]
2. Display time[x]
3. Display another calculated value[x]

With LabelFormatter it works but there is an issue, My Series0 Time[x] at Index0 is not Series1 Time[x] at Index0. So if I display both series and have (1.) ‘data index’ selected than it works. If I have (2.) ‘time’ selected, it doesn’t because the Series0 Time[x] at Index0 is not Series1 Time[x] at Index0.

How can I solve this?

  • miri asked 11 years ago
0 votes
6k views

Hello,

I’d like to have some kind of highlight functionality for a chart as shown in the attached image. Actually it’s exactly what a ScrollBar control does for an overview, but without changing the visible range. Is there any way to (ab)use the ScrollBar for functionality like this? If not, can you perhaps give me some pointers on how you would implement something like this. Or if there is something similar in SciChart I missed?

  • _ _ asked 8 years ago
  • last active 8 years ago
0 votes
17k views

Do you know a good way to print the hole chart to a printer?
Our first solution is to create a PNG from the chart and paste it into a PDF. But I have to stretch/resize the PNG to the paper size.
It exist a good way to direct paint?

Thanks for helping?
Marcel

  • Marcel asked 12 years ago
  • last active 2 years ago
0 votes
11k views

Is it possible to run two versions of SciChart at the same time? I wanted to create a new project in my codebase using the new SciChart version 2.1, without having to upgrade my other projects referencing 1.6. Of course, I now get version conflicts in my final build. Renaming the DLL did not work, is there a way around this?

0 votes
12k views

Hi,
I have done everything possible, but I can’t seem to get the vertical slice modifier to appear. I have wired the function just how the ‘InspectDataPoints => Create Verticle Slices’ SciCharts Example.

Unfortunately, it just doesn’t seem to work! Nothing is popping up when I press the ‘Add Slice’ button. The only difference with the example from SciCharts is that I am using a DateTime Axis.

private void OnCreateSliceClick(object sender, RoutedEventArgs e)
        {
            MouseButtonEventHandler mouseClick = null;
            mouseClick = (s, arg) =>
            {
                this.MouseLeftButtonUp -= mouseClick;
                hintText.Visibility = Visibility.Collapsed;
                var mousePoint = arg.GetPosition((UIElement)this.sciChart.GridLinesPanel).X;

                var slice = new VerticalLineAnnotation()
                {           
                    //X1 = new DateTime(2012, 1, 7, 8, 0, 0),
                    X1 = this.sciChart.XAxis.GetDataValue(mousePoint),
                    Style = (Style)Resources["sliceStyle"]
                };

                sliceModifier.VerticalLines.Add(slice);
            };

            hintText.Visibility = Visibility.Visible;
            this.MouseLeftButtonUp += mouseClick;
        }

And then I tried changing the Date Axis using the following code

var mousePoint = arg.GetPosition((UIElement)this.sciChart.GridLinesPanel).X;
var categoryCoordCalc = sciChart.XAxis.GetCurrentCoordinateCalculator() as ICategoryCoordinateCalculator;
var dataPointIndex = (int)categoryCoordCalc.GetDataValue(mousePoint);

unfortunately, the ‘categoryCoordCalc’ value returns a null!!!

I am so stuck!! Please help me!

  • Azrin Sani asked 9 years ago
  • last active 9 years ago
1 vote
10k views

Hi Andrew, support Guys

I have recently done my upgrade from 1.7 to 2.3 , quite easily but i have come across two problems that i would like to ask you.

My chart area let say is between 1st of Jan and 1st of Feb , series are renderd correctly no problem.
If i add and annotation (vertical line) before rendering, let say 15 Jan everything is working fine instead if i add the same annotation after (e.g. 15 Feb) when rendering the chart this annotation is not considered in the whole range of the chart.
Also i must show always an annotation on the X axis at 0 value or show always the zero line, (horiozontal line) , but if the series values are beetween 10 to 20 also in this case the annotation is not in the view of the chart.

Which is the best way to acheive my goal ? showing all elements in the chart in any case even if they are dataseries or annotation or else ?

Thanks,
Giuseppe

  • jp13 asked 10 years ago
0 votes
11k views

Hi!

Connecting to my latest reply on this thread
https://www.scichart.com/questions/question/strange-behaviour-of-collapsing-panes#sabai-entity-content-8887
I still can’t make panes disappear correctly with multiple panes.

Here is the sample project demonstrating what you proposed on the previous thread, the first chartpane is shown but the panes do not resize.
https://drive.google.com/open?id=0B19IHNOVxrKCR21aeG4tOHlRNmM

Please make this project work as expected (i.e. there is 3 panes in the list, but only the second displayed in the list on the area of the 3 panes) to show me, how this works.

thanks.

Kristóf

1 vote
8k views

I have basic printing working based on the XPS printing walkthrough. However the legend does not show. I’m not sure what to do about that. Any ideas on how to handle that?

0 votes
7k views

Hi,

How can I change the colour bar of column chart individually?
I need to create a non linear column chart and every bar should have their own colour that correspond to X values.

0 votes
0 answers
10k views

SciChart v2.0.0.2718 Beta 2!

SciChart v2.0 Beta 2 is here! This is the first public Beta after a private Beta to some of our customers. After a stabilisation period we will be going to full production release so please give us your feedback.

Finally, please give us your feedback on SciChart v2.0! If you require an extended trial key in order to view it, please contact us and we will gladly oblige.

New Features at a glance include:

  • Box Plot, Error Bars, Bubble Chart, Fan Chart
  • Heatmap / Spectrogram
  • Stacked Column Chart, Stacked Bar Chart, Stacked Mountain Chart, Stacked Columns (side by side)
  • No more DataSeriesSet, MVVM API improvements
  • Unlimited, Multiple X-Axes
  • Swap X-Y axis (rotate chart)
  • New PointMarker API
  • Support for more DataTypes in DataSeries (ushort, short, uint, byte, sbyte, TimeSpan)
  • New TimeSpanAxis
  • New Axis Interactivity API
  • Alternative, Sub-pixel (High Quality) renderer
  • High Performance Axis Bands, High Performance Dashed Line support (StrokeDashArray)
  • Gradient Brush support for Column, Candlestick, Mountain, Box Plot and Stacked Chart types
  • PaletteProvider now works on Line Series (Colors lines point by point)
  • Support for custom themes via IThemeProvider
  • Faster rendering in multiple axis scenarios
  • Plugin renderer architecture
  • Exceptions and renderer error codes – ‘Why didn’t SciChart render’ reason is output to Console
  • Window
  • New! online API documentation (work in progress)
0 votes
10k views

Hi,

I created a chart legend based on the online example. I have three data series: an XyScatterRenderableSeries, a FastColumnRenderableSeries, and a FastLineRenderableSeries. The plot itself is fine. But the legend isn’t. In addition to the checkboxes bug (I don’t need these and so have set ShowVisibilityCheckboxes=False, to no effect), I’m seeing color samples for the scatter and column data, but nothing for the line. All three series names appear as expected, but I’m missing the color sample for the line plot. What’s up?

Thanks,
–George

1 vote
17k views

Hello,
I’m using your package for price charting. And I need to put on one bar (or candlestick) several markers (for example several dots with different colours and sizes). Also sometimes I need to change size on some of these markers. Now I am doing this by putting CustomAnnotations. Is there a way to plot the same with for example XyScatterRenderableSeries to increase drawing speed?

Best regards,
Roman.

  • Roman asked 9 years ago
  • last active 9 years ago
0 votes
10k views

Hi,
i want to added a Scrollbar by the new version of the Scichart V3.2 for this i want to test the exemple of “Scollbars”

<UserControl.Resources>
    <s:OrientationToVisibilityConverter x:Key="OrientationToVisibilityConverter"/>

    <Style TargetType="s:SciChartScrollbar">
        <Setter Property="GripsThickness" Value="9"/>
        <Setter Property="GripsLength" Value="14"/>
        <Setter Property="ViewportStyle">
            <Setter.Value>
                <Style TargetType="Control">
                    <Setter Property="Background" Value="#49528a"/>
                    <Setter Property="BorderBrush" Value="#6b72a0"/>
                    <Setter Property="BorderThickness" Value="2"/>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="GripsStyle">
            <Setter.Value>
                <Style TargetType="Control">
                    <Setter Property="Background" Value="#49528a"/>
                    <Setter Property="BorderBrush" Value="#6b72a0"/>
                </Style>
            </Setter.Value>
        </Setter>
    </Style>

</UserControl.Resources>
<Grid s:ThemeManager.Theme="Electric">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <!--  Create the chart surface  -->
    <s:SciChartSurface Name="sciChart" Grid.Row="0">

        <!--  Declare RenderableSeries and assign to Y-Axis  -->
        <s:SciChartSurface.RenderableSeries>
            <s:FastLineRenderableSeries x:Name="bottomLeftLine" SeriesColor="#c04d4d" StrokeThickness="1" XAxisId="BottomAxisId" YAxisId="LeftAxisId"/>
            <s:FastLineRenderableSeries x:Name="bottomLeftCurve" SeriesColor="#dfa239" StrokeThickness="1" XAxisId="BottomAxisId" YAxisId="LeftAxisId"/>
            <s:FastLineRenderableSeries x:Name="topRightLine" SeriesColor="#FFB3E8F6" StrokeThickness="1" XAxisId="TopAxisId" YAxisId="RightAxisId"/>
            <s:FastLineRenderableSeries x:Name="topRightCurve" SeriesColor="#6495ed" StrokeThickness="1" XAxisId="TopAxisId" YAxisId="RightAxisId"/>
        </s:SciChartSurface.RenderableSeries>

        <!--  Create an X Axis  -->
        <s:SciChartSurface.XAxes>
            <s:DateTimeAxis x:Name="BottomAxis" AxisAlignment="Bottom" AxisTitle="Bottom Axis" BorderBrush="#FFE26565" BorderThickness="0,1,0,0" Id="BottomAxisId" TickTextBrush="#FFE26565"/>
            <s:DateTimeAxis AxisAlignment="Top" AxisTitle="Top Axis" BorderThickness="0,0,0,1" Id="TopAxisId">
                <s:DateTimeAxis.Scrollbar>
                    <s:SciChartScrollbar Height="16"/>
                </s:DateTimeAxis.Scrollbar>
            </s:DateTimeAxis>
        </s:SciChartSurface.XAxes>

        <!--  Create Y Axes on the Left and Right. Optional bands give a cool look and feel for minimal performance impact  -->
        <s:SciChartSurface.YAxes>
            <s:NumericAxis AxisAlignment="Left" AxisTitle="Left Axis" BorderBrush="#FFE26565" BorderThickness="0,0,1,0" DrawMajorBands="True" GrowBy="0.05, 0.05" Id="LeftAxisId" TextFormatting="#.0" TickTextBrush="#FFE26565">
                <s:NumericAxis.Scrollbar>
                    <s:SciChartScrollbar Width="16"/>
                </s:NumericAxis.Scrollbar>
            </s:NumericAxis>
            <s:NumericAxis AxisAlignment="Right" AxisTitle="Right Axis" BorderThickness="1,0,0,0" GrowBy="0.05, 0.05" Id="RightAxisId" TextFormatting="#.0">
                <s:NumericAxis.Scrollbar>
                    <s:SciChartScrollbar Width="16"/>
                </s:NumericAxis.Scrollbar>
            </s:NumericAxis>
        </s:SciChartSurface.YAxes>

        <!--  Create chart modifiers to zoom, pan and double click to zoom extents  -->
        <s:SciChartSurface.ChartModifier>
            <s:ModifierGroup>
                <s:RubberBandXyZoomModifier IsXAxisOnly="True"/>
                <s:ZoomPanModifier ExecuteOn="MouseRightButton"/>
                <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick"/>
                <s:LegendModifier Margin="10" GetLegendDataFor="AllSeries" ShowLegend="True"/>
            </s:ModifierGroup>
        </s:SciChartSurface.ChartModifier>
    </s:SciChartSurface>
    <Grid Grid.Row="1" Background="#FF151624">
        <s:SciChartScrollbar Height="16" Margin="6,5,4,5" Axis="{Binding ElementName=BottomAxis}"/>
    </Grid>
</Grid>

using System;
using System.Windows;
using System.Windows.Controls;
using Abt.Controls.SciChart.Model.DataSeries;

namespace Abt.Controls.SciChart.Example.Examples.IWantTo.ZoomAndPanAChart
{
///

/// Interaction logic for ScrollBars.xaml
///

public partial class ScrollBars : UserControl
{
// Used to generate Random Walk
private Random _random = new Random(251916);
const int Count = 2000;

    public ScrollBars()
    {
        InitializeComponent();
    }

    private void ScrollBarsLoaded(object sender, RoutedEventArgs e)
    {
        // Batch updates with one redraw
        using (sciChart.SuspendUpdates())
        {
            // Add four data-series
            var dataSeries0 = new XyDataSeries<DateTime, double>();
            var dataSeries1 = new XyDataSeries<DateTime, double>();
            var dataSeries2 = new XyDataSeries<DateTime, double>();
            var dataSeries3 = new XyDataSeries<DateTime, double>();

            // Fill each dataset with 2,000 pts of X,Y values (Date,Double)
            // and ensure RenderableSeries has its datasource
            bottomLeftLine.DataSeries = FillData(dataSeries0, "Line #1");
            bottomLeftCurve.DataSeries = FillData(dataSeries1, "Curve #1");
            topRightLine.DataSeries = FillData(dataSeries2, "Line #2");
            topRightCurve.DataSeries = FillData(dataSeries3, "Curve #2");

            // Set Visible ranges to force scrollBars
            sciChart.YAxes[0].VisibleRange = new DoubleRange(12, 28);
            sciChart.YAxes[1].VisibleRange = new DoubleRange(-2, 8);
            sciChart.XAxes[0].VisibleRange = new DateRange(new DateTime(2012, 1, 5), new DateTime(2012, 1, 10));
            sciChart.XAxes[1].VisibleRange = new DateRange(new DateTime(2012, 1, 5), new DateTime(2012, 1, 10));
        }
    }

    private IDataSeries FillData(IXyDataSeries<DateTime, double> dataSeries, string name)
    {
        double randomWalk = 10.0;
        var startDate = new DateTime(2012, 01, 01);

        // Generate the X,Y data with sequential dates on the X-Axis and slightly positively biased random walk on the Y-Axis
        var xBuffer = new DateTime[Count];
        var yBuffer = new double[Count];
        for (int i = 0; i < Count; i++)
        {
            randomWalk += (_random.NextDouble() - 0.498);
            yBuffer[i] = randomWalk;
            xBuffer[i] = startDate.AddMinutes(i * 10);
        }

        // Buffer above and append all in one go to avoid multiple recalculations of series range
        dataSeries.Append(xBuffer, yBuffer);
        dataSeries.SeriesName = name;

        return dataSeries;
    }
}

}

i added the reference “Abt.controls.SciChart.wpf” but always i have the error in the DateTimeAxis.Scrollbar and <s:NumericAxis.Scrollbar> , i think that missing an assembly reference of the scrollbar but i don’t know what’s this assembly (like the errors in the picture)??? thank you !

  • sahar Les asked 9 years ago
  • last active 9 years ago
0 votes
11k views

I have a class that extends the IPointMetadata interface that I append in my XyDataSeries data. What I would like to do is create a point marker based off this metadata.

For instance, say I have a property called Shape in my metadata that contains values of Circle, Triangle, Star. I want to be able to create those point marker shapes on the same series of data.

I tried creating my own marker by extending the BasePointMarker class, but I wasn’t able to find a way to get to the metadata.

0 votes
17k views

Hi,

Can I write SciStockChart with DateTimeAxis like:

        <s:SciStockChart SeriesSource="{Binding ChartManager.ChartData, 
                                                UpdateSourceTrigger=PropertyChanged, 
                                                Mode=TwoWay}" 
                         x:Name="SciChart"
                         YAxes="{Binding ChartManager.YAxes}"
                         s:ThemeManager.Theme="Chrome">
            <s:SciStockChart.XAxis>
                <s:DateTimeAxis DrawMinorTicks="True" 
                                DrawMinorGridLines="True" 
                                VisibleRange="{Binding ChartManager.XVisibleRange, 
                                                       UpdateSourceTrigger=PropertyChanged, 
                                                       Mode=TwoWay}"
                                DrawMajorGridLines="True"/>
            </s:SciStockChart.XAxis>
        </s:SciStockChart>

because I have exeption “Axis type DateTimeAxis requires that DataRange and VisibleRange is of type Abt.Controls.SciChart.DateRange”. The XVisibleRange is a IRange type.

Thanks,
Arthur

1 vote
9k views

I made my own custom modifier to act just like a rollover modifier, but allow keyboard input to move the rollover line between points. It was pretty easy to do and is working great, but there’s one final thing I cannot figure out how to achieve.

I want to display the the X-axis value tooltip below the vertical line just like the built-in RollOver modifier does. I was just going to manually render it, but it appears that you cannot render outside the chart modifier surface!

Is there any way to achieve this within SciChart or do I need to try to draw something completely on top of the entire SciChartSurface?

  • walshr asked 9 years ago
  • last active 9 years ago
0 votes
14k views

I’m trying to create a few ChartSurface’s which show same elements but with different visible ranges.
If i share DataSeries by binding to SeriesSource this works. But if i try to binding Annotations to a few ChartSurface’s i see annotations only on last chart. If i manually create copy of annotations that everything works but takes a long time.
Is there any way to binding Annotations to a few Charts?

  • l1pton17 asked 10 years ago
  • last active 5 years ago
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
8k views

Hi,

Given the 2D heat map sample, could you suggest how to improve performance so that UI remains responsive. This is somewhat similar to what we would in worst case need for our application. There is room for tweaking the updates to UI and how things get displayed or using a non MVVM solution, etc.

Thank you for your help!

Rok

  • Rok Rode asked 8 years ago
  • last active 4 years ago
0 votes
13k views

I need numAxis.MajorStartIndex = 1;

XValue is sequentially

 public class CustomAxis : NumericAxis
    {
        public override string FormatText(IComparable value)
        {
         ...
        }
    }
4 votes
14k views

Hi,

I would like to display simple equations as axis titles. For example cm^2 (with the 2 superscript) or g / mol with the “mol” under the g.

Is there a way to do that? At least being able to superscript or subscript any letter would be a must.

Thanks.

  • xhahn asked 11 years ago
  • last active 10 years ago
2 votes
12k views

Hi, in the Dynamically Create Annotations demo, the method on how annotations are created is by (for example a line):

1) First Click on the annotation button
2) Click on the SciChart Surface. This creates the first point of a line
3) Click again on the end point of the line.

Instead of having to do two clicks, is there a way to click and drag instead? eg.

1) First Click on the annotation button
2) Click on the SciChart Surface. This creates the first point of a line
3) drag to the end point of the line.

I just want to mimic Microsoft power point behaviour as our users are more familiar with it.

Thanks

  • Azrin Sani asked 9 years ago
  • last active 2 years ago
0 votes
11k views

Hello,

I am evaluating SciChart (for info : v 2.3) for integration into a WPF application. For the application is important that the user can interact with the chart.

So I have been trying to get that working with SciChart : with the MouseWheelZoomModifier we can use the mouse wheel to zoom the chart and with ZoomPanModifier we can use the left-mouse button to pan the chart. Excellent !

But then we would like to have the same behavior on the axes : Mouse wheel to zoom an axis and left-mouse button to move it up and down. Until now I found only the XAxisDragModifier to make an axis interactive but that has a quite different behavior.

So my question is : How can I get the same zooming and panning behavior on the axes ?

thanks in advance for any help,
Stefaan
Norway

0 votes
0 answers
10k views

Hi,

I like to display the SciChart in the extra content of a PropertyItem from a PropertyGrid. But the axes and line series are not visible because the styles are not loaded. This problem happens only if I display the SciChart inside a PropertyGrid and only with SciChart. All other controls can be displayed inside the PropetyGrid easy…

How to load the SciChart style?

I am using SciChart.3.5.0.7433 with .NET 4.5.1 and the PropertyGrid from Extended WPF Toolkit

Best regards
Tobias

0 votes
11k views

Hello,

I’m using v3.2 SciChart and cannot figure with this problem:

    <SciChart:SciChartSurface x:Name="sciChart">
        <!--  Create X Axis  -->
        <SciChart:SciChartSurface.XAxis>
            <SciChart:NumericAxis   AxisTitle="{Binding XAxisLabel}"   VisibleRange="-20, 50"/>
        </SciChart:SciChartSurface.XAxis>
        [...]
    <SciChart:SciChartSurface/>

It seems that negative values are not displayed correctly, it’s showing these data:
-2 -1 0 10 20 30 40 50

If I set textFormatting to “#.0”, it shows
-20, -10, ,0 10,0 20,0 30,0 40,0 50,0

It’s like negative sign is considerate as a digit.

0 votes
9k views

Hi Support Team,

I am a SL developer and i am trying to save the scichart surface as a png file.

I have seen you example “First download the source code, you can find i.e. here: ScreenshotsXpsAndXLabels.zip”

but unfortunally it only works in Wpf , any suggestions would be appreciated.

Cheers

Giuseppe

  • jp13 asked 11 years ago
0 votes
12k views

Now I am trying to add MVVM bindings for a Chart Legend

I have

        <SciChart:SciChartSurface x:Name="sciChart" DataSet="{Binding DataSeriesSet}" 
            SciChart:ThemeManager.Theme="Oscilloscope" 
            Grid.Row="1" 
            RenderableSeries="{Binding RenderableSeries}"
            ChartModifier="{Binding ChartModifier}"
            XAxis="{Binding XAxis}" 
            YAxes="{Binding YAxes}">
                   </SciChart:SciChartSurface>
        <SciChart:SciChartLegend x:Name="legendControl" Grid.Row="1" Margin="23,23" ShowVisibilityCheckboxes="True" LegendData="{ Binding LegendDataSource,  Mode=OneWay}"/>

and in My ViewModel

        public AnalogueChartViewModel()
        {
            XAxis = new DateTimeAxis
            {
                VisibleRange = RangeFactory.NewRange(DateTime.Now.AddDays(-2), DateTime.Now),
                DrawMinorGridLines = false,
                AxisTitle = "X-Axis"
            };
            RenderableSeries = new ObservableCollection<IRenderableSeries>();
            YAxes = new AxisCollection();
            DataSeriesSet = new DataSeriesSet<DateTime, double>();
            var xAxisDrag = new XAxisDragModifier();
            var zoomExtents = new ZoomExtentsModifier();
            var rubberBandZoom = new RubberBandXyZoomModifier();
            var panModifier = new ZoomPanModifier { ExecuteOn = ExecuteOn.MouseRightButton };
            _legendDataSource = new LegendModifier { GetLegendDataFor = 0 };

            ChartModifier = new ModifierGroup(xAxisDrag, zoomExtents, rubberBandZoom, panModifier, _legendDataSource);

        }

        private LegendModifier _legendDataSource;

        public LegendModifier LegendDataSource
        {
            get { return _legendDataSource; }
            set 
            { 
                _legendDataSource = value;
                OnPropertyChanged("LegendDataSource");
            }
        }


But not sure how to bind to the LegendData

Sorry I keep troubling you, but after all this there should be some good MVVM code for others to follow too.

  • wilx asked 11 years ago
1 vote
9k views

Hello,

I am trying to evaluate Scichart for purchase. I am using live data (17 Channels, many samples per second) to draw FastLineRenderableSeries (0-100% on the y axis, time on the x axis). I have everything working satisfactorily using the MVVM pattern. I have tried the HighQualityRenderSurface and Direct3D10RenderSurface.

Are these renderers actually working or am I still using the software renderer?

I need to draw a translucent rectangle on the chart to indicate a “Good” range of values of y values (say 40-50%).

If I use annotations to draw a rectangle, everything slows down and it is unusable. If I use immediate mode drawing and the HighQualityRendererSurface it is kind of OK. If i use immediate mode drawing and the Direct3D10RenderSurface the rectangle and the series lines alternately flash slowly and it is unusable.

How can I draw a rectangle on the screen using live data and get good performance? Do I need the license for this to work well?

Thanks.

1 vote
0 answers
15k views

Hi,

I have graph with Verctically Stacked Axes. Each of series have different scale. This means that Grid that holds yAxis ticks and labels has different width for each series.

As Axis Container is StackPanel it leads to problem, how to align AxisTitles ?

What I Would like is to set AxisContainer to Grid with two columns.
The first column for AxisTitle, second column for labels and ticks, with shared size group.
Is it possible?

UPDATE I have added a picture. Fig. 1. shows current state, Fig. 2. shows what i would like to achieve.

Thanks
Jan

  • Jan Kaiser asked 9 years ago
  • last active 9 years ago
1 vote
12k views

I’m trying to create a CustomRenderableSeries in MVVM. I’ve got my custom renderable series working fine outside of MVVM, and it seems pretty simple to wrap it with a ViewModel using the API.

However, the series isn’t displaying (Draw not getting called, and ranges not changing, so it’s not just failing to draw anything).

It’s pretty simple (and I’m going to add caching for the pens and brushes later):

public class CustomXyScatterRenderableSeriesViewModel : BaseRenderableSeriesViewModel
{
    // Tell SciChart what type of RenderableSeries you want to instantiate
    public override Type RenderSeriesType
    {
        get { return typeof(CustomXyScatterRenderableSeries); }
    }
}


public sealed class CustomXyScatterRenderableSeries : CustomRenderableSeries
{
    protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
    {
        XyzPointSeries pointSeries = renderPassData.PointSeries as XyzPointSeries;

        // PointMarkers are created once and cached
        var pointMarker = this.GetPointMarker();

        //if (pointMarker == null)
        //    return;

        int setCount = pointSeries.Count;

        IBrush2D brush = renderContext.CreateBrush(Brushes.Red, 0.5);
        IPen2D pen = renderContext.CreatePen(Colors.Transparent, false, 0, 0);
        // Iterate over points collection and render point markers
        for (int i = 0; i < setCount; i++)
        {
            double xPoint = (double)pointSeries.XValues[i];//pointSeries[i].X;
            double yPoint = (double)pointSeries.YValues[i];//pointSeries[i].Y;
            double zPoint = (int)pointSeries.ZPoints[i];

            // Get coordinates for X,Y data values
            var x1 = (int)renderPassData.XCoordinateCalculator.GetCoordinate(xPoint);
            var y1 = (int)renderPassData.YCoordinateCalculator.GetCoordinate(yPoint);
            var z1 = (int)zPoint+2;

            //var pointMarkerRect = new Rect(0, 0, pointMarker.PixelWidth, pointMarker.PixelWidth);
            //double xOffset = pointMarkerRect.Width / 2;
            //double yOffset = pointMarkerRect.Height / 2;

            // Draw PointMarkers
            renderContext.DrawEllipse(pen, brush, new Point(x1, y1), z1 * 2, z1 * 2); //(new Rect(x1 - xOffset, y1 - yOffset, pointMarkerRect.Width, pointMarkerRect.Height), pointMarker, pointMarkerRect);
        }
        brush.Dispose();
        pen.Dispose();
    }
}

When directly, all is good:

<s:SciChartSurface x:Name="SciChartSurface"
                   DebugWhyDoesntSciChartRender="True"
                   GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}"
                   DataContext="{Binding ElementName=userControl}"

                   ViewportManager="{Binding ViewportManager}"
                   ChartTitle="{Binding Title}">

    <s:SciChartSurface.RenderSurface>
        <s3D:Direct3D10RenderSurface />
    </s:SciChartSurface.RenderSurface>

    <s:SciChartSurface.RenderableSeries>
        <helpers:CustomXyScatterRenderableSeries DataSeries="{Binding Data}"  />
    </s:SciChartSurface.RenderableSeries>

    <s:SciChartSurface.XAxis>
        <s:NumericAxis AxisTitle="{Binding XAxisLabel}" LabelProvider="{StaticResource SINumericLabelProvider}"/>
    </s:SciChartSurface.XAxis>
    <s:SciChartSurface.YAxis>
        <s:NumericAxis AxisTitle="{Binding YAxisLabel}" LabelProvider="{StaticResource SINumericLabelProvider}"/>
    </s:SciChartSurface.YAxis>
    <s:SciChartSurface.ChartModifier>
        <s:ModifierGroup>
            <s:MouseWheelZoomModifier x:Name="mouseWheelZoomModifier" />
            <s:RubberBandXyZoomModifier ExecuteOn="MouseRightButton" IsAnimated="True" />
            <s:ZoomPanModifier />
            <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
        </s:ModifierGroup>
    </s:SciChartSurface.ChartModifier>
</s:SciChartSurface>

But when using the View Model, it fails to display:

<s:SciChartSurface x:Name="SciChartSurface"
                   DebugWhyDoesntSciChartRender="True"
                   GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}"
                   DataContext="{Binding ElementName=userControl}"

                   ViewportManager="{Binding ViewportManager}"
                   ChartTitle="{Binding Title}"
                   RenderableSeries="{s:SeriesBinding Series}">

    <s:SciChartSurface.RenderSurface>
        <s3D:Direct3D10RenderSurface />
    </s:SciChartSurface.RenderSurface>

    ....
</s:SciChartSurface>

I’m not sure what I’m doing wrong, as there doesn’t seem to be much more to it!

Edit: More info, in the code behind, I’m binding to this data for testing:

    public XyzDataSeries<float, float, int> Data { get; set; }
    public ObservableCollection<IRenderableSeriesViewModel> Series { get; set; }

    public LineChart()
    {
        this.DataContext = this;
        Data = new XyzDataSeries<float, float, int>();
        Data.Append(50, 50, 10);
        Data.Append(100, 100, 15);
        Series = new ObservableCollection<IRenderableSeriesViewModel>();
        Series.Add(new CustomXyScatterRenderableSeriesViewModel() { DataSeries = Data });

        InitializeComponent();
    }
  • Ken Hobbs asked 8 years ago
  • last active 8 years ago
0 votes
0 answers
9k views

Happy 1st Birthday SciChart!

Happy birthday SciChart! Just under a year ago, the first production version of SciChart went live. This was a really simplistic version which included our pioneering raster/vector Line, Candlestick, Mountain and Column Charts, few interactivity modifiers, and used only a category axis for X-data. Since then we’ve come a long way!

We want to thank all our customers who have supported us in year one. We aim to repay you by continuing to develop our High Performance WPF & Silverlight Charting component and by delivering the outstanding service & support that you’ve come to expect.

Roadmap for SciChart v2.0

We’ve announced our Project Roadmap for SciChart v2.0 in the first half of 2013. We invite you to take a look and add your comments & suggestions!

0 votes
16k views

Is it possible use SciChart to rotate the point markers on chart by a z value? I’d like to produce a chart similar to the attached wind chart sample from the weather underground website.

  • wawr asked 9 years ago
  • last active 9 years ago
0 votes
10k views

I have a problem with FastColumnRenderableSeries. It automatically sets min range on Y scale as lowest value of data. But I need min range on Y scale to be 0. How can I achive that easily?

Additional question: How may I set max value of Y scale? In case if there are rare occasions of extraordinary huge volume periods, which would make all other volumes look tiny.

  • RTrade A asked 10 years ago
  • last active 10 years ago
0 votes
14k views

Hi,

I’m trying to set the Visible Range of a CategoryDateTime Axis and its throwing an “Object must be of type DateTime” exception. Can you tell me whats wrong here

var scs = new SciChartSurface();
scs.XAxis = new CategoryDateTimeAxis() { DrawMajorGridLines = false, DrawMinorGridLines = false,AutoRange=AutoRange.Never };
scs.YAxis = new NumericAxis() { Id = "Y1", DrawMajorGridLines = false, DrawMinorGridLines = false };
scs.Style = (System.Windows.Style)this.chartForm.sciChartControl.Resources["SciChartSurfaceStyle"];
DateTime startDate = new DateTime(2003, 9, 1);
DateTime endDate = new DateTime(2004, 1, 31);
scs.XAxis.VisibleRange = new DateRange(startDate, endDate);

The exception gets thrown on the last line. I also tried populating the series before I called the visible range, but it has not effect on the exception.

Thanks,
Deepak

1 vote
6k views

Hi,
Could anyone explain me what’s that about these errors?

‘Mocks_SciChart_Charting_Visuals_SciChartOverview_0_166924839_8_24014362’ TargetType does not match type of element ‘SciChart_Charting_Visuals_SciChartOverview_0_166924839’

The value “Spectrium.Chart.Modifiers.Spectrogram.SpectrogramSelectionModifier” is not of type “Mocks.SciChart_Charting_ChartModifiers_IChartModifier_0_166924839” and cannot be used in this generic collection.

The first one is caused by

<LinearGradientBrush x:Key="MountainAreaBrush" StartPoint="0,0" EndPoint="0,1">
    <GradientStop Offset="0" Color="#33006400" />
    <GradientStop Offset="1" Color="#E5006400" />
</LinearGradientBrush>

<Style x:Key="OverviewScrollbarStyle" TargetType="s:SciChartScrollbar">
    all setters are omited for brevity
</Style>

<Style x:Key="OverviewStyle" TargetType="s:SciChartOverview"> <-- this style cause an error
    <Setter Property="Fill" Value="{StaticResource MountainAreaBrush}"/>
    <Setter Property="ScrollbarStyle" Value="{StaticResource OverviewScrollbarStyle}"/>
    <Setter Property="Stroke" Value="#FF279B27"/>
</Style>

The second by

<s:SciChartSurface.ChartModifier>
    <s:ModifierGroup s:MouseManager.MouseEventGroup="CustomGroup">
        <m:SpectrogramSelectionModifier/>
    </s:ModifierGroup>
</s:SciChartSurface.ChartModifier>

Of course “m” namespace is defined.

After building all these errors disappear but just right after I click on .xml file int the solution explorer the errors are shown again.

Best regards
Mark

1 vote
19k views

I want some specific behavior out of my X and Y axes. Right now I have custom code which modifies the ranges for the axes to get the behavior I want. It would be nice to just do this by setting options on the axes.

For my Y axis I want to use the AutoRange feature but the default seems a little crowded. Instead of it ranging to the min and max of the data series I want it to show a little room on the top and bottom.

For the X axis I want to show exactly the most recent hour of data.

Thanks for any help.

  • dlee asked 12 years ago
2 votes
13k views

Hi,
How can I get my application to do the following:

  • RubberBandXyZoomModifier execute on left mouse
  • ZoomPanModifier execute on left mouse + ctrl

I tried extending the ZoomPanModifier as such:

public class ZoomPanModifierEx : ZoomPanModifier
{
   public override void OnModifierMouseDown(ModifierMouseArgs e)
   {
      IsEnabled = (e.MouseButtons == MouseButtons.Left) && (e.Modifier == MouseModifier.Ctrl);
      base.OnModifierMouseDown(e);
   }
}

This did not work though.

Thanks in advance.

Johnny

Showing 101 - 150 of 3k results