We’re trying to make multiple legends on the screen, for example, 1 for the left axis and its data series, 1 for the right axis and its data series. I can see it’s possible in the WPF documentation, but in the iOS documentation it says “Coming soon!”. Do we need to wait for a future release of the Xamarin.iOS library or is it possible somehow now?
By the way, I’m not a trial user. We’ve just purchased a license today.
Thanks,
Lazar Nikolov
- Lazar Nikolov asked 5 years ago
- last active 5 years ago
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 Hoehn asked 6 years ago
- last active 6 years ago
Hello,
Can someone explain how to set SeriesValueModifier.IsSeriesValueModifierEnabled for particular RenderableSeries in code?
- Roman asked 9 years ago
- last active 9 years ago
I would like to implement a custom DateTime axis LabelProvider with the following behavior:
- Show full date and time at the start of the visible region
- Show only time on all other ticks unless the date changes from the previous tick.
So, an axis might look like:
10/01/2016 23:00 23:30 10/02 00:00 00:30 01:00
It seems this is doable as long as 00:00:00 appears as one of the label values, but I’m not sure l can be guaranteed. It is likely that none of the entries in the series would contain that exact value. One entry might be 23:59:17 and the next 00:01:13.
Is there any way for a LabelProvider to determine what the preceding label value was?
Bill
- William Lear asked 8 years ago
- last active 8 years ago
I’m trying to create a spectrum viewer with your library. One important feature is a cursor supporting both automatic mode and manual mode. In automatic mode, it stays at the maximum value. In manual mode, it moves with finger panning. It’s close to the SCICursorModifier with the cross lines, but it should always stay on the plot even without touch. Also it should reside on real data points instead of anywhere in between like the SCIRolloverModifier instead of the SCICursorModifier.
Could you give me some advices about how to achieve it? Thanks.
EDIT: after reading more of your documents, I believe HorizontalLineAnnotation and VerticalLineAnnotation are the way to go. I have already added them as the automatic mode cursor. For the manual mode, I still need your help to achieve either:
1) a callback function for the VerticalLineAnnotation drag event, so that I could move both lines to the corresponding data point
or
2) a custom ZoomPanModifier to allow me to distinguish one point or two points touch: one point panning to move the whole plot and two points panning to determine the new cursor location and redraw the two annotations there
EDIT2: I was able to create a custom VerticalLineAnnotation class to handle the panning event. There is one more question left. Right now in order to update the verticallineannotation and horizontallineannotation on the graph, I remove them from sciChartSurface.annotations, change x/y locations and add them back. Is there a redraw or refresh or update function to call directly?
Thanks
- Haoran Xie asked 5 years ago
- last active 5 years ago
I’m having some difficulty with the RolloverData PropertyChanged notification. I have attached an event handler based on your code, which is triggered as I mouse over the chart, but the SeriesInfo collection always has a count of 0. The data bound rollover block does update correctly.
Any ideas?
- Alex Lynch asked 12 years ago
Hi!
I have chart with mountain series with a palette provider.
It performs extremely well with 50k points.
However, I noticed that when I drag the chart away, to a point where the series is not visible, the performance sinks and the chart is extremely laggy.
I have uploaded my code to codepen: https://codepen.io/robrob123/pen/KKJjyvp
I checked the performance using the chrome performance profiler and I found that a function called applyStrokeFillPalletting is called repeatedly many times and each time it takes way too long to execute, considering there is no series to draw.
I have attached a screenshot showing the performance profiling.
Thank you!
- Roger Cooper asked 5 months ago
- last active 5 months ago
In a scenario where two numeric axis (X, Y) both have IsCenterAxis set to true, is it then possible to force MouseWheelZoomModifier to use center point of current view when zooming, rather than using mouse point as center point when zooming ?
- Arne Ryborg asked 3 weeks ago
- last active 2 weeks ago
SciChart v1.3.5.1252 has been released, which includes two bug-fixes that have been reported in the forums. Please download this update if you are experiencing either of these issues.
Fixes
- Fixed a bug when the surface is empty when first dataseries has no points
- Fixed an issue which appears when removing the last series/axis in an MVVM application, where CPU goes to 100%
- Andrew Burnett-Thompson asked 12 years ago
Have a look at the example. I’d like to get rid of the brown line between June 10 and 11. Since there’s no day between 10 and 11, I can’t use the draw NaN as gap option here. Or can I?
Thanks,
Ruud
- Ruud Hermans asked 8 years ago
- last active 8 years ago
Hi
i have multiple charts. They all bind to the same visiblerange(to be precise: to the same values not the same instance).
But the length of the xaxis are different(see the attached image). The reason is the the big yaxis numbers in the lower chart. But i need them to be aligned. Is there a way to achieve this?
Thanks in advance
- Jan Eckhardt asked 8 years ago
- last active 8 years ago
Originally my chart would
– create the surface
– setup the chart modifiers
– setup the axis
– add the data (SCIFastLineRenderableSeries).
However, it appears that when you .add(new SCIFastLineRenderableSeries) it recreates all the tooltips on each add, and finally on the very last SCIFastLineRenderableSeries that is inserted will get two duplicate tooltips. This happens both with the default tooltips or custom tooltips.
I finally noticed that some of your examples you setup the modifiers at the end after adding the data. So I moved all the chart modifiers into a separate function and called it after the data is setup, and now the proper number of tooltips appears.
This might either need to be noted somewhere prominent in the iOS docs; or even better the order shouldn’t matter.
- Nathanael Anderson asked 4 years ago
- last active 4 years ago
Very simply, I am attempting to get the Examples to compile and upload to my Android phone. The first download had the examples, but not including Showcases. That version I successfully compiled and ran on an Android phone. Very happy with the professional look and feel.
Since then, I re-downloaded the examples including Showcase and gone through so many upgrades of Android Studio and Gradle and various supporting libraries (as prompted) I’ve lost track.
However, now I cannot compile. Please tell me what dependency is broken of config needs to be changed. Someone else must have been through this.
Thank you for your help.
Ed
Error message:
Gradle sync failed: Could not find core.aar (com.scichart.library:core:2.0.1.1962).
Searched in the following locations:
https://www.myget.org/F/abtsoftware/maven/com/scichart/library/core/2.0.1.1962/core-2.0.1.1962.aar
Consult IDE log for more details (Help | Show Log) (9s 483ms)
I’ve also gone through and set Compile SDK Version to API 25, build tools version to 27. Then I get an error
Gradle sync failed: Could not find method android() for arguments [build_dpm8geo0q8d311u3f6njnup18$_run_closure10@1d7e526a] on root project ‘Examples’ of type org.gradle.api.Project.
Configuration:
MacOS 10.12.6, Android Studio 3.0 (updated from 2.3.x), JDK 1.8
- Ed Chambers asked 7 years ago
- last active 7 years ago
I am using the MVVM pattern.
I trying to manage the number of YAxes in my chart in a dynamic manner by binding the YAxes in the chart to a collection so that each time I add a new line series that line series gets its own axis.
When I do this I am getting a null reference expection.
If I hard code the YAxes or YAxis my chart loads.
Here is the xaml:
<SciChart:SciChartSurface x:Name="historicalChart"
RenderableSeries="{Binding HistoricalRenderableSeries, Mode=TwoWay}"
YAxes="{Binding ChartYAxes, Mode=TwoWay}"
SciChart:ThemeManager.Theme="ExpressionLight">
...
</s:SciChartSurface>
Here is the ViewModel
I tried both an ObservableCollection and a AxisCollection in my view model.
private ObservableCollection<NumericAxis> _chartYAxes = new ObservableCollection<NumericAxis>();
public ObservableCollection<NumericAxis> ChartYAxes
{
get { return _chartYAxes; }
set
{
_chartYAxes = value;
NotifyPropertyChanged("ChartYAxes");
}
}
private AxisCollection _chartYAxes = new AxisCollection();
public AxisCollection ChartYAxes
{
get { return _chartYAxes; }
set
{
_chartYAxes = value;
NotifyPropertyChanged("ChartYAxes");
}
}
Can anyone suggest a way to manage a variable number of YAxes in a chart?
- sdemooy asked 12 years ago
- last active 9 years ago
Dear all,
I am dynamically changing my series type by switching from Bar, to Line, or to scatter.
Bar and line works perfectly well, but have no idea why nothing gets displayed fore scatter.
Here the code below from your sample where I apply the style :
private IRenderableSeriesViewModel New(Type type, IDataSeries dataSeries = null)
{
var xyDataSeries = dataSeries ?? GetXyDataSeries(GetRanromWalk(0));
if (type == typeof(ColumnRenderableSeriesViewModel))
{
return new ColumnRenderableSeriesViewModel {
DataSeries = xyDataSeries,
StyleKey = "BarSeriesStyle" };
}
if (type == typeof(LineRenderableSeriesViewModel))
{
return new LineRenderableSeriesViewModel {
DataSeries = xyDataSeries,
StyleKey = "LineSeriesStyle"
};
}
if (type == typeof(XyScatterRenderableSeriesViewModel))
{
return new XyScatterRenderableSeriesViewModel {
DataSeries = xyDataSeries,
StyleKey = "ScatterSeriesStyle" };
}
throw new NotImplementedException("Unsupported Series Type");
}
And the style named for scatter which is store in application resources, same as other style
<Style x:Key="LineSeriesStyle" TargetType="s:FastLineRenderableSeries">
<Setter Property="Stroke" Value="DarkBlue" />
<Setter Property="StrokeThickness" Value="3" />
</Style>
<Style x:Key="BarSeriesStyle" TargetType="s:FastColumnRenderableSeries">
<Setter Property="Stroke" Value="Orange" />
<Setter Property="StrokeThickness" Value="3" />
</Style>
<Style x:Key="ScatterSeriesStyle" TargetType="s:XyScatterRenderableSeries">
<Setter Property="Stroke" Value="Yellow" />
<Setter Property="PointMarkerTemplate">
<Setter.Value>
<ControlTemplate>
<s:EllipsePointMarker Width="5" Height="5"
Fill="Red"
Stroke="#FF000000"
StrokeThickness="2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Any idea what I do wrong ?
regards
- sc sc asked 6 years ago
- last active 6 years ago
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
Was created react-native-charts-sci wrapper for Scichart with the structure – [Screenshot _1]. And now need to publish this package to npm private repo, but Scichart.framework folder is vast (~100 MB) and its connect in current podspec file – [Screenshot_2] like a local directory:
spec.public_header_files = “ios/SciChart.frameworks/Headers/*”
spec.vendored_frameworks = “ios/SciChart.framework”
Need to connect Scichart.framework in wrapper library like subspec that it could be taken during the installation process from vendor’s podspec repo: https://github.com/ABTSoftware/PodSpecs/tree/master/SciChart. The goal is to decrease of wrapper library folder size that would be possible to publish it to npm repo.
After adding Scichart.framework like subspec – [Screenshot_4] to podspec, get the errors after pod install – [Screenshot_3]:
– ERROR | [iOS] attributes: Can’t set version
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set authors
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set license
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set homepage
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set source
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set summary
attribute for subspecs (in react-native-charts-sci/SciChart
).
– ERROR | [iOS] attributes: Can’t set documentation_url
attribute for subspecs (in react-native-charts-sci/SciChart
).
Can you tell me please is it possible to get Scichart.framework from vendor’s podspec repo: https://github.com/ABTSoftware/PodSpecs/tree/master/SciChart and connect it like a subspec in podspec file? Need to create LICENSE.txt with the licence and write the pass of it in podspec file? Can you provide some examples with the correct way to do it? Why get this errors? What’s wrong with the current framework connection?
- Alexander Kishchak asked 2 years ago
- last active 2 years ago
Howdy! I’m Ross, and I’ve been trying out SciChart as a replacement for Dynamic Data Display in a program I’m working on. So far, SciChart has better documentation, support, and features, which is great. Once I’m at the level where I was with the previous tool, this will likely be the one I purchase. But there was a good behavior I liked in D3 that I’m struggling to implement in SciChart.
I want the scroll wheel behavior to only zoom on a single axis when the mouse is over that axis. So if I move my mouse over the x-axis and scroll, I want it to only change that axis’ space.
So, for example, “Drawing a line graph” here: http://research.microsoft.com/en-us/um/cambridge/projects/ddd/d3isdk/
I think the key is my inability to find the region that the axes occupy. I know I can trigger on entering or leaving the region to change behavior from there. Is there an easy way to find these values?
If this is in some example I haven’t seen or has been answered before, I’d be appreciative of a link, as well! Thanks!
- boss1000 asked 11 years ago
We are adding 24 channel data Live graph using Scichart Example of Vital sign monitor. We are using VitalSignsMonitorShowcaseFragment.java example.
To show the live graph, do we need to accumulate the data for 50 point or so. I see in the code they are accumulating?
Is it necessary for the accumulation, please let us know
protected void initExample(ExampleVitalSignsMonitorFragmentBinding binding) {
final DefaultVitalSignsDataProvider dataProvider = new DefaultVitalSignsDataProvider(getActivity());
setUpChart(dataProvider);
dataProvider.getData().buffer(50, TimeUnit.MILLISECONDS).doOnNext(ecgData -> {
if(ecgData.isEmpty()) return;
dataBatch.updateData(ecgData);
UpdateSuspender.using(binding.surface, () -> {
final DoubleValues xValues = dataBatch.xValues;
ecgDataSeries.append(xValues, dataBatch.ecgHeartRateValuesA);
ecgSweepDataSeries.append(xValues, dataBatch.ecgHeartRateValuesB);
bloodPressureDataSeries.append(xValues, dataBatch.bloodPressureValuesA);
bloodPressureSweepDataSeries.append(xValues, dataBatch.bloodPressureValuesB);
bloodOxygenationDataSeries.append(xValues, dataBatch.bloodOxygenationA);
bloodOxygenationSweepDataSeries.append(xValues, dataBatch.bloodOxygenationB);
bloodVolumeDataSeries.append(xValues, dataBatch.bloodVolumeValuesA);
bloodVolumeSweepDataSeries.append(xValues, dataBatch.bloodVolumeValuesB);
final VitalSignsData lastVitalSignsData = dataBatch.lastVitalSignsData;
final double xValue = lastVitalSignsData.xValue;
lastEcgSweepDataSeries.append(xValue, lastVitalSignsData.ecgHeartRate);
lastBloodPressureDataSeries.append(xValue, lastVitalSignsData.bloodPressure);
lastBloodOxygenationSweepDataSeries.append(xValue, lastVitalSignsData.bloodOxygenation);
lastBloodVolumeDataSeries.append(xValue, lastVitalSignsData.bloodVolume);
});
}).compose(bindToLifecycle()).subscribe();
updateIndicators(0);
Observable.interval(0, 1, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
.doOnNext(this::updateIndicators)
.compose(bindToLifecycle()).subscribe();
}
- Aditya Kadambi asked 3 years ago
- last active 3 years ago
Hi,
I am trying to add labels to the x axis but I don’t want the axis line to be visible. numericAxis.drawLabels = true
enables the x axis line also. Is there a way to disable it?
- Vidya Sagar Mohanraj asked 6 years ago
- last active 6 years ago
I currently have a scatter plot:
XyScatterRenderableSeries series = new XyScatterRenderableSeries();
series.PointMarker = new EllipsePointMarker()
{
Fill = Colors.Blue,
Width = 3,
Height = 3,
};
series.AntiAliasing = false;
series.ResamplingMode = Abt.Controls.SciChart.Numerics.ResamplingMode.None;
With 12000 points. The points are sorted, but I’m still having performance issues. When zoomed all the way out panning and zooming is very slow/choppy. Is there a way to set up the series so that it has higher performance?
Thanks,
Greg
- Sean Clifford asked 10 years ago
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.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?
- David T asked 10 years ago
- last active 10 years ago
Hello,
How to add buy sell annotation to real time chart(Performance demo chart in examples)
- Balu Reddy Kovvuri asked 5 years ago
- last active 5 years ago
Hello,
I am using the BrushAnnotation and it works fine except that the
mouseover events seems to happen too soon.
I mean that when the mouse is close to the BrushAnnotation, but not on it,
the mouse cursor changed and I can drag the BrushAnnotation.
It happens for all lines but especially for shapes with many segments which
are closed to each other, see attached file ‘MouseOver event too soon (my application).png’.
I saw something similar in your ‘Trade Annotation’ example ,
it happens when I used the Tools=>Pointer, see attached figure ‘MouseOver event too soon (from Scichart example).png’.
Can I changed the distance from which the mouseover event starts?
Best regards,
Eyal
- Eyal Nevo asked 3 years ago
- last active 3 years ago
I am trying to add a VerticalLineAnnotation with a text at the bottom to my SciChart graph.
The similar thing works great when the XAxis is a NumericalAxis, but throws an Exception when it is a TimeSpanAxis.
var commentAnnotation = new VerticalLineAnnotationViewModel()
{
// Setting the LabelValue only works when the XAxis is a NumericalAxis
// and throws an Exception when it is a TimeSpanAxis
LabelValue = "vertical line annotation",
ShowLabel = true,
// adjust this to '9' when trying it with a NumericalAxis
X1 = TimeSpan.FromHours(9),
};
AnnotationViewModels.Add(commentAnnotation);
My SciChartSurface looks like this:
<s:SciChartSurface Annotations="{s:AnnotationsBinding AnnotationViewModels}">
<s:SciChartSurface.XAxis>
<s:TimeSpanAxis>
<s:TimeSpanAxis.VisibleRange>
<s:TimeSpanRange Min="00:00:00" Max="10:00:00" />
</s:TimeSpanAxis.VisibleRange>
</s:TimeSpanAxis>
</s:SciChartSurface.XAxis>
</s:SciChartSurface>
- Matthias Fritsche asked 5 years ago
- last active 5 years ago
I am using sci charts to show live graphs of some devices. While displaying a graph on IPhone X or iPhone 6s it sometimes lags and lines started overlapping. It’s working fine on devices iPhone XSMax, iPhone 11. I have attached a 3 screenshots. Once when graph starts lagging, 2nd when graph is in middle, 3 when graph completes. please have a look. It starts lagging and overlapping lines when a new graph starts and when it ends it shows a complete graph shown and then again same issue repeats. It also started working correctly after some time. I need information about this issue. How to fix it and why it’s happening like this…
- Muhammad Bilal asked 3 years ago
- last active 3 years ago
My application is an oscilloscope application. It is a two-dimensional graph, the X axis is TimeSpanAxis, and the Y axis is NumericAxis.
When I add data to the DataSeries of the curve, if the value is too large, such as: double.MaxValue, double.Minvalue, etc., the curve will be presented as an approximate value, as shown in the figure(Input: 9007199254740992; Display: 9007199254740990).
What should I do to accurately display the maximum or minimum values, such as: double.MaxValue (1.7976931348623157E + 308), ulong.MaxValue (18446744073709551615), … etc.
- Johnny Yeh asked 4 years ago
How do you set X1,X2 and Y1,Y2 in xaml as suggested in a previous post here on the forum?
I also get null values here when using Composite Annotations example. the suggestion to set the value DependencyProperty.SetCurrentValue(X1Property, 0.0); does not work since DependencyProperty does not expose a SetCurrentValue method (?)
I am using your example code for doing composite Annotations on my existing chart.
I am using MeasureXAnnotation and MeasureXyAnnotation and the respective Update method that is overidden.
What am I missing ?
Appreciate your help with getting this working
Thanks
Anders
- John-Anders Persson asked 3 years ago
- last active 3 years ago
Hi,
to draw a stock bar, the open-close width are auto set according to zoom, which is okay. But the highest-lowest line in the middle of a stock candlestick is too thin.
I’ve been searching for a way to increase the width of the highest-lowest line, but neither the showcases nor the forum provides a solution.
Any help? Thank you.
- xing king asked 4 years ago
- last active 4 years ago
My MVVM application can display more than 300 FastLineRenderableSeries on a SciChartSurface. SciChart handles the data and redisplays quite well. Thank you!
My users may mouse click on a series and quickly see the SelectedSeriesStyle change. The application needs to access the SeriesName of the SelectedSeries in the ViewModel for updates to other items in the ViewModel.
I read the topic/posts tagged SelectionSeriesModifier MVVM and the SeriesSource API. My attempts to utilize the CollectionChanged event of SelectedRenderableSeries (not in code-behind) have not had any success. It seems that I should do a OneWayToSource binding from SelectedRenderableSeries to an ObservableCollection<IChartSeriesViewModel> in the ViewModel. I would then like to use an MVVM Light EventToCommand bound to the CollectionChanged event.
Can you provide a demo or workaround on how to actually make this work?
- LyleDanielson asked 10 years ago
Hi,
Our view models currently hold AxisCollection and work with IAxis. We’re hoping to switch to working with IAxisViewModel at this level.
But some feature differences will make this harder:
- IAxis.TickLabelStyle – view model only supports TickTextBrush, not the other font related properties we customise in this style.
- SImilarly MajorGridLineStyle and MinorGridLineStyle
- Is IAxisViewModel.StyleKey the equivalent of IAxis.TitleStyle? (we just need to move our style definitions to XAML instead of creating Style objects in code)
- Is IAxisViewModel.VisibleRange equivalent to IAxis.DataRange?
Can there be equivalent IAxisViewModel.TickLabelStyleKey, similarly Minor/Major grid line StyleKey?
Background
Our view models hang around to hold logical state of charts. But they also hold some AxisCollection, bound to from SciChartSurface.
We get exceptions like: InvalidOperationException Element already has a logical parent, under SciChart methods in the call stack.
E.g. when reconnecting to a PC over remote desktop, where a chart was already loaded.
This change was also suggested as a solution to our other recent issue, here:
https://www.scichart.com/questions/wpf/axiscollection-isprimaryaxis-stops-auto-updating#sabai-entity-content-13950
The “Element already has a logical parent” exception doesn’t happen when clicking between multiple charts like that latter issue. I’ve prototyped a changeover (commenting out all the bits not directly equivalent) and it seems to resolve this exception.
- michael williamson asked 4 years ago
- last active 4 years ago
registerVisibleRangeChangedCallback is not enough for me.
I want an active stop function like this.
surface.stopScroll()….
- Minsub Kim asked 5 years ago
- last active 5 years ago
Hi,
There are some methods exposed in the API, ZoomBy and ZoomExtent which can programmatically be called from the code behind.
I am binding the series using IRenderableSeriesViewModel in MVVM pattern. Can we zoom the sciChart surface on a button click in ModelView?
Appreciating your help on this.
Thanks
- Anil Prasad asked 7 years ago
- last active 7 years ago
I want to implement something like, if a certain analysis value/custom logic is true for one of the values in the loop, –> set this bar color to ‘orange’ as an example, how can i do this?
// Create a dataset of type x=DateTime, y=Double
var dataSeries = new OhlcDataSeries<DateTime, double>();
// Prices are in the format Time, Open, High, Low, Close (all IList)
var prices = smallerList;
// Append data to series. SciChart automatically redraws
for (var i = 0; i < prices.Count(); i++)
{
// Convert TIME to a 4-digit string (e.g., 5 becomes "0005", 15 becomes "0015")
string timeString = prices[i].Value.TIME.ToString("D4");
// Parse the TIME field
int hour = int.Parse(timeString.Substring(0, 2));
int minute = int.Parse(timeString.Substring(2, 2));
// Create the DateTime object
DateTime dateTime = new DateTime(prices[i].Value.YEAR, prices[i].Value.MONTH, prices[i].Value.DAY, hour, minute, 0);
Dispatcher.Invoke(() =>
{
//here we append values in 'dataSeries', how do i do something like, 'bool condition =
// returnCustomLogic('dataValues') --> outputs true, if true --> set this bar color to orange
// Update the UI element on the UI thread
dataSeries.Append(
dateTime,
(double)prices[i].Value.OPEN,
(double)prices[i].Value.HIGH,
(double)prices[i].Value.LOW,
(double)prices[i].Value.CLOSE);
});
}
Dispatcher.Invoke(() =>
{
StockChart.RenderableSeries[0].DataSeries = dataSeries;
// Zoom Extents - necessary as we have AutoRange=False
StockChart.ZoomExtents();
});
- Adan Ramirez asked 4 months ago
- last active 4 months ago
Hello there,
I’m trying to implement adding line annotation on touch, but this causes crash.
I’m watching example android app in fragment CreateAnnotationsDynamicallyFragment.
I guess, it should be very easy, but example uses data binding and part of code is hidden somewhere + source code is obfuscated, so it’s hard for me to understand what is wrong.
Can someone give a short example of how to add annotation on touch?
Thanks
Exception:
Process: process_name, PID: 24978
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Comparable com.scichart.charting.visuals.axes.IAxis.getDataValue(float)' on a null object reference
at com.scichart.charting.modifiers.AnnotationCreationModifier.a(SourceFile:203)
at com.scichart.charting.modifiers.AnnotationCreationModifier.onTouchDown(SourceFile:155)
- Kirey Vadim asked 5 years ago
- last active 5 years ago
Hello,
I’m trying to convert Android (Java) code to iOS (Swift), and I need to create a custom SCIZoomPanModifier. In the android code, onFling, onDown, and onDown were overridden, but I can’t seem to do that in iOS. How can I override onFling, onDown, and onUp in iOS to mimic the android code?
Thanks
- Yatharth Chhabra asked 4 years ago
- last active 4 years ago
I am trying SciChart iOS.
I run the demo code, and check on the line chart.
The y-axis label is on the right of the plot, and aligned center.
I tried to modify the alignment to right by adding the following code.
(Also, changing things like amplitude or rightAxisAreaForcedSize)
yAxis.style.labelStyle.alignmentHorizontal = SCILabelAlignmentHorizontal_Right;
I was hoping that the smallest digit of “0” and “100” can be aligned,
but no effect could be seen when I ran the code. (still center-aligned)
Is that a bug or is there any reason for the behavior?
FYI, when I modify the code again with “SCILabelAlignmentHorizontal_Left”, it work as expected.
- Yi Kwan Lam asked 5 years ago
VS2015 doesn’t support add-ins, so I can’t run the updater tool. Is there another option?
- William Stebler asked 8 years ago
- last active 8 years ago
Good day!
I’m working with FastLineRenderableSeries and big amount of annotations. I need to put some annotations below LineSeries, but above other annotaions.
I’ve read article about order of annotaions and renderable series and using of stack, but it doesn’t make a sense.
Thank in advance.
Here are sreenshots.
- Egor asked 10 years ago
- last active 10 years ago
Hello everyone.
I have a candlestick chart with date x-axis and double y-axis.
While scrolling to the left im loading past history and showing it – everything works fine.
Once i have below crash:
What can cause it?
Can not find anything in google.
01-22 10:23:31.490 28770-28770/com.test.livedataperformance E/InputEventReceiver: Exception dispatching input event.
01-22 10:23:31.490 28770-28770/com.test.livedataperformance D/AndroidRuntime: Shutting down VM
01-22 10:23:31.490 28770-28770/com.test.livedataperformance E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.livedataperformance, PID: 28770
java.lang.UnsupportedOperationException: Unsupported search mode
at com.scichart.data.model.SciListUtil.longFindIndex(Native Method)
at com.scichart.data.model.SciListUtil.a(SourceFile:39)
at com.scichart.data.model.SciListUtil$b.findIndex(SourceFile:3044)
at com.scichart.data.model.SciListFactory$i.a(SourceFile:3141)
at com.scichart.data.model.SciListFactory$i.findIndex(SourceFile:3126)
at com.scichart.charting.model.dataSeries.XDataSeries.a(SourceFile:273)
at com.scichart.charting.model.dataSeries.XDataSeries.getIndicesXRange(SourceFile:241)
at com.scichart.charting.model.dataSeries.XDataSeries.getWindowedYRange(SourceFile:208)
at com.scichart.charting.visuals.renderableSeries.BaseRenderableSeries.getYRange(SourceFile:1027)
at com.scichart.charting.visuals.axes.rangeCalculators.RangeCalculationHelperBase.getWindowedYRange(SourceFile:225)
at com.scichart.charting.visuals.axes.AxisBase.getWindowedYRange(SourceFile:1098)
at com.scichart.charting.visuals.SciChartSurface.a(SourceFile:1116)
at com.scichart.charting.visuals.SciChartSurface.zoomExtentsY(SourceFile:1167)
at com.scichart.charting.modifiers.ZoomPanModifier.a(SourceFile:202)
at com.scichart.charting.modifiers.ZoomPanModifier.onScroll(SourceFile:176)
at android.view.GestureDetector.onTouchEvent(GestureDetector.java:619)
at com.scichart.charting.modifiers.GestureModifierBase.onTouch(SourceFile:80)
at com.scichart.charting.modifiers.ModifierGroup.onTouch(SourceFile:189)
at com.scichart.core.utility.touch.MotionEventManager.c(SourceFile:140)
at com.scichart.core.utility.touch.MotionEventManager.a(SourceFile:39)
at com.scichart.core.utility.touch.MotionEventManager$a$1.a(SourceFile:224)
at com.scichart.core.utility.touch.MotionEventManager$a$1.execute(SourceFile:221)
at com.scichart.core.utility.touch.MotionEventManager$a.a(SourceFile:211)
at com.scichart.core.utility.touch.MotionEventManager$a.onTouchEvent(SourceFile:183)
at com.scichart.charting.visuals.SciChartSurface.onTouchEvent(SourceFile:1251)
at android.view.View.dispatchTouchEvent(View.java:9300)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2547)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
at android.app.Activity.dispatchTouchEvent(Activity.java:2812)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
at android.view.View.dispatchPointerEvent(View.java:9520)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4242)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4095)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3641)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3694)
at android.view.ViewRootImpl$InputStage.forward(ViewRoo
- Kirey Vadim asked 5 years ago
- last active 5 years ago
Hello. I’d like to point the Camera3D to a particular marker at x,y,z on my chart. I thought the ‘target’ property would do that, but changing it in the ‘Modify Camera Properties’ example doesn’t seem to change where the camera is pointing. What am I missing?
Thanks,
Daryl.
- Daryl Wilding-McBride asked 7 years ago
- last active 7 years ago
I add a LineAnnotation programmaticly to my surface and want to readjust it just like in the Examples Suite via clicking and draging the ends of the annotation.
As long as i dont use a Theme everything works fine. But when applying a custom theme the Manipulation points are not there anymore (and not only visualy, clicking at the end of the line also does not work. Furthermore the mousecursor does not change to a cross when hovering above the annotation end).
This is my Custom theme code:
<ResourceDictionary x:Class="Reprocess.SciChartDisplay.CustomTheme"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<!-- ************************* -->
<!-- Colors and Brushes -->
<!-- ************************* -->
<!-- Chart Brushes -->
<SolidColorBrush x:Key="TickTextBrush" Color="Black"/>
<SolidColorBrush x:Key="MajorGridLineBrush" Color="LightGray"/>
<SolidColorBrush x:Key="MinorGridLineBrush" Color="LightGray"/>
<SolidColorBrush x:Key="SciChartBackground" Color="White"/>
<SolidColorBrush x:Key="GridBorderBrush" Color="#102A47"/>
<SolidColorBrush x:Key="GridBackgroundBrush" Color="Transparent"/>
<SolidColorBrush x:Key="RolloverLineBrush" Color="#33FD9F25"/>
<SolidColorBrush x:Key="CursorLineBrush" Color="#996495ED"/>
<SolidColorBrush x:Key="RubberBandFillBrush" Color="#33333399"/>
<SolidColorBrush x:Key="RubberBandStrokeBrush" Color="#77999999"/>
<SolidColorBrush x:Key="LegendBackgroundBrush" Color="AliceBlue"/>
<SolidColorBrush x:Key="LabelBackgroundBrush" Color="#AA6495ED"/>
<SolidColorBrush x:Key="LabelBorderBrush" Color="#FF6495ED"/>
<SolidColorBrush x:Key="LabelForegroundBrush" Color="Black"/>
<SolidColorBrush x:Key="TextAnnotationForeground" Color="#EEEEEE"/>
<SolidColorBrush x:Key="TextAnnotationBackground" Color="#AA6495ED"/>
<Color x:Key="AxisBandsFill">White</Color>
<!-- Default Series Colors -->
<Color x:Key="UpWickColor">Gray</Color>
<Color x:Key="DownWickColor">Gray</Color>
<SolidColorBrush x:Key="UpBodyBrush" Color="Gray"/>
<SolidColorBrush x:Key="DownBodyBrush" Color="Gray"/>
<Color x:Key="UpBandSeriesLineColor">#22117711</Color>
<Color x:Key="DownBandSeriesLineColor">#22111111</Color>
<Color x:Key="UpBandSeriesFillColor">Black</Color>
<Color x:Key="DownBandSeriesFillColor">Red</Color>
<LinearGradientBrush x:Key="MountainAreaBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Gray" Offset="0"/>
<GradientStop Color="#000710" Offset="1"/>
</LinearGradientBrush>
<Color x:Key="MountainLineColor">Black</Color>
<Color x:Key="LineSeriesColor">Black</Color>
<Color x:Key="ColumnLineColor">#11FFFFFF</Color>
<SolidColorBrush x:Key="ColumnFillBrush" Color="#11FFFFFF"></SolidColorBrush>
<Brush x:Key="OverviewFillBrush">White</Brush>
<Brush x:Key="ScrollbarViewportBackgroundBrush">White</Brush>
<LinearGradientBrush x:Key="DefaultColorMapBrush">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="0.5" Color="White"/>
<GradientStop Offset="1" Color="White"/>
</LinearGradientBrush>
Any suggestions?
- Andre Pols asked 7 years ago
- last active 7 years ago
Good day everybody!
I have got a problem. I need to place axis title above axis ticks. But I can’t find any method to do it. Could you help me?
Thank in advance.
- Egor asked 10 years ago
- last active 10 years ago
Hi,
I’m trying to render a mountain series with different colors in specific ranges.
I understand that this could be done using the palette provider.
I have done that, but the chart is behaving in a very strange way.
When dividing the chart to 2 color parts, when panning and scrolling it to a point that some of the points are out of window, the coloring starts to go crazy.
I have attached a few images that show the problem, and have also attached a file with the source code.
I have tested this on chrome version 116
Here’s the code
import {FastMountainRenderableSeries, XyDataSeries,ZoomPanModifier,EXyDirection,MouseWheelZoomModifier,NumericAxis,SciChartJSLightTheme, SciChartSurface, parseColorToUIntArgb, DefaultPaletteProvider, EStrokePaletteMode} from 'scichart'
SciChartSurface.UseCommunityLicense();
SciChartSurface.useWasmFromCDN();
class PaletteProvider extends DefaultPaletteProvider {
constructor() {
super();
this.strokePaletteMode = EStrokePaletteMode.SOLID;
}
overrideStrokeArgb(xvalue) {
return xvalue > 200 ? parseColorToUIntArgb('#ff0000') : undefined
}
overrideFillArgb(xvalue) {
return xvalue > 200 ? parseColorToUIntArgb('#ff0000') : undefined
}
}
const init = async () => {
const {wasmContext, sciChartSurface} = await SciChartSurface.create('container', {theme: new SciChartJSLightTheme()})
const xAxis = new NumericAxis(wasmContext);
const yAxis = new NumericAxis(wasmContext);
sciChartSurface.xAxes.add(xAxis)
sciChartSurface.yAxes.add(yAxis)
sciChartSurface.chartModifiers.add(new MouseWheelZoomModifier({xyDirection: EXyDirection.XDirection}))
sciChartSurface.chartModifiers.add(new ZoomPanModifier({xyDirection: EXyDirection.XDirection}))
const array = new Array(500).fill(0).map(val => Math.max(Math.random(), 0));
const array2 = new Array(500).fill(0).map((val, index) => index);
const dataSeries = new XyDataSeries(wasmContext)
dataSeries.appendRange(array2, array);
const series = new FastMountainRenderableSeries(wasmContext, {
stroke: 'blue',
fill: 'blue',
strokeThickness: 3,
zeroLineY: 0,
dataSeries,
paletteProvider: new PaletteProvider()
})
sciChartSurface.renderableSeries.add(series);
}
init();
Thanks for the help!
- haba haba asked 8 months ago
- last active 8 months ago
Hello
In Tutorial 06b – Realtime Updates, I want change the <s:SciChartSurface.XAxis>
from <s:NumericAxis/>
to <s:DateTimeAxis/>
. I have tried a lot, but it still doesn’t work.
Could you please help me to do this work.
Thank you very much.
- Zhi Zhang asked 8 months ago
- last active 8 months ago
Hi,
i want to disable the pan effect when user long press on chart and allow the user to scroll only in the currently visible range to view the rollover tooltip so that user can see the reading in the current visible range. Once the long press is release, then enable the pan effect again.
Currently when user try to see the reading using rollover tooltip, the whole chart is moving. I have tried removing and adding the zoompanmodifier on long press gesture in ios. But it is not working.
Thank you in advance.
- Manoj Kulkarni asked 4 years ago
Is there a way to update the entire data series instead of a particular y value at an index ?
https://www.scichart.com/documentation/js/current/typedoc/classes/xydataseries.html#update
- vamsi kunchaparthi asked 3 years ago
- last active 3 years ago
Hi,
I want to hide the thin grey border SciChartSurface is on, is there a way to do this? I can see that with different themes, the color of this border can change, But I can’t find where I can do this from. I’ve included a screenshot marking the border to show what I’m talking about.
Thank you
- kewur asked 9 years ago
- last active 9 years ago
Hi SciChart team,
I want to use SciChart (2D) in a new application. I have chosen .NET framework 4.0 as my target platform since that could still be installed on Windows XP according to Microsoft.
However at the SciChart WPF “System Requirements” (I suppose for the latest version, version 4), I see that it runs on .NET framework 4.0, but also requires at least Windows Vista. Does it really not run on XP? Could you elaborate that?
I see in an old question from “Lisbeth” 3 years ago, that you said it should be running on XP, provided that .NET 4.0 is available. Has that changed?
Regards,
Johannes
- Niet Herkenbaar asked 8 years ago
- last active 8 years ago