Hi
I’m using auto range on a numeric axis. The data can be anything, but I want the axis to never have a range of less than 5.
E.g.: -100 to -95
E.g.: 17 to 22
E.g.: 0 to 5
etc.
What do I need to set to be able to do this? I have tried MinimalZoomConstrain and VisibleRangeLimit without success. Preferably something to set in XAML on my axis.
Thanks.
- Henning Bjørgo asked 9 years ago
- last active 9 years ago
I’m trying to change the AutoRange property of my axis in a VisualStateManager storyboard and it’s throwing an exception saying the value is invalid. Is this not possible or should the object/property be accessed differently?
Exception: “The animation(s) applied to the ‘AutoRange’ property calculate a current value of ‘AutoRange.Once’, which is not a valid value for the property.”
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="AutoRange" Storyboard.TargetName="XAxis">
<DiscreteObjectKeyFrame KeyTime="0" Value="AutoRange.Once"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
.
.
.
<sc:NumericAxis x:Name="XAxis" AxisTitle="Time (s)" TitleFontSize="14" AutoRange="Always"/>
Thanks!
- Matthew Becker asked 9 years ago
- last active 9 years ago
Hi All,
Today’s weirdness was hard to track down but I can now demonstrate it with minimal code.
As a summary to the problem – we may generate multiple user controls each containing a chart that can’t all be viewed on screen at the same time. Our solution was to wrap everything in a ScrollViewer and allow the user to scroll through them. This caused the x Axis and any Right Aligned axis to do weird things with the chart.
On careful observation we noticed that any mouse movements in the axis while dragging were being interpreted as drags on the chart area so it would zoom (or pan) accordingly instead of dragging the Axis in question. Setting the scrollviewer scrollbar visibility to disabled returned the chart to expected behavior.
Can someone tell me what we did wrong or provide a work around suggestion.
The XAML:
<UserControl x:Class="WpfUITest.SciChartMultiaxisTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" `enter code here`
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:s="http://schemas.abtsoftware.co.uk/scichart"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<!-- <ScrollViewer CanContentScroll="False" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled"> THIS IS OK -->
<ScrollViewer CanContentScroll="False" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid>
<s:SciChartSurface x:Name="UserControlSciChartSurface" s:ThemeManager.Theme="Chrome" >
<s:SciChartSurface.XAxis>
<s:NumericAxis AxisAlignment="Bottom" AxisTitle="XAxis 1" GrowBy="0.01,0.01"/>
</s:SciChartSurface.XAxis>
<s:SciChartSurface.YAxes>
<s:NumericAxis x:Name="Left1" Id="Left1" AxisTitle="Left Axis" AxisAlignment="Left" />
<s:NumericAxis x:Name="Right1" Id="Right1" AxisTitle="Right Axis" AxisAlignment="Right" />
</s:SciChartSurface.YAxes>
<s:SciChartSurface.ChartModifier>
<s:ModifierGroup>
<!-- <s:ZoomPanModifier x:Name="ZoomPanModifier" ExecuteOn="MouseLeftButton" /> -->
<s:RubberBandXyZoomModifier x:Name="rubberBandZoomModifier" ExecuteOn="MouseLeftButton"/>
<s:ZoomExtentsModifier x:Name="zoomExtentsModifier" ExecuteOn="MouseDoubleClick"/>
<s:XAxisDragModifier x:Name="xAxisDragModifier" IsEnabled="True" ClipModeX="None" />
<s:YAxisDragModifier AxisId="Left1" IsEnabled="True" />
<s:YAxisDragModifier AxisId="Right1" IsEnabled="True"/>
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
</s:SciChartSurface>
</Grid>
</ScrollViewer>
</Grid>
I put a simple test series on from the code behind as follows:
public void AddTestDataSeries()
{
XyDataSeries<int, int> testSeriesData = new XyDataSeries<int, int> { SeriesName = "Series1" };
for(int x = 1; x < 10; x++)
{
testSeriesData.Append(x, x);
}
FastLineRenderableSeries testSeries = new FastLineRenderableSeries();
testSeries.DataSeries = testSeriesData;
testSeries.YAxisId = "Left1";
testSeries.SeriesColor = Colors.Red;
this.UserControlSciChartSurface.RenderableSeries.Add(testSeries);
}
Any ideas anyone?
- Stuart McCullough asked 9 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
I want YAxis Auto Scale less than the value max 10% and greater value min 10%, how?
- kingsoff asked 11 years ago
- last active 9 years ago
I would like to template items of an AxisCollection assigned to a sciChartSurface in binding of an AxisItemCollectionViewModel. But it looks like I cannot do it as Visual Studio won’t compile my tries.
What i am looking for is something like the EEG 16 channel sample. There the ListBoxItems are styled via a template which is bound to a ViewModelItem. The ListBox itsself is bound to a ViewModelCollection. Depending on how many entries there are entries in the listbox.
So I would like to do something like this:
<SciChartSurface.AxisCollection ItemsSource="{Binding MyAxisCollectionViewModels}" ItemTemplate="{StaticResource AxisItemTemplate}" />
Is this possible? I don’t know how many y-axes i will have. They are configurable by the user.
- Uwe Hafner asked 9 years ago
- last active 9 years ago
Hello,
How do I right-justify the numbers on the y-axis? The y-axis is on the left side of my chart.
Thanks,
Neville
- Neville Bonwit asked 9 years ago
- last active 9 years ago
i want to make y axis big in range as you can see in screenshot . Yaxis is small in Height
want to make it full screen
- vinay khandelwal asked 9 years ago
- last active 9 years ago
Hi,
Just wanted to know how to implement 3D graphics and charts in the Sci chart if possible.
- Divya Mehta asked 9 years ago
- last active 9 years ago
Hi, I’m trying to position vertical line annotations on a chart. I want to position them on a visible part of the chart, but I need to use the Absolute coordinate mode as I want the annotation to move with the data as the chart is panned or zoomed.
My question is then: how can I find the currently visible extents of the X axis? If the chart is zoomed or panned I need to know what the left and rightmost visible X-axis values are (independent of the data).
- Robert Evans asked 9 years ago
- last active 9 years ago
On priority support tickets, a user just asked us how to show and hide the AxisTitle TextBlock without changing the AxisTitle.Text to string.Empty.
The solution uses attached properties and a small custom style, so we thought we’d post it below
- Andrew Burnett-Thompson asked 9 years ago
- last active 9 years ago
Hi,
I have some special requirements to solve. First point is to align the axis title position to the top of the axis. So the title is above the axis.
Second thing is to manually edit the visible range min and max inside the axis. So that the label min and max are editable.
Is there any way to do that?
Regards Markus
- Rupertsberger Markus asked 9 years ago
- last active 9 years ago
I wonder how I can disable the x-Axis from automatically re-scaling when panning a series beyond the available data range? The only time when axes scales change should be when I modify the axes scales via mouse on the respective axis itself. But when I pan a series I do not want any changes in axes scale to occur. How can I accomplish that? Thanks
- bbmat asked 9 years ago
- last active 9 years ago
I made an example based on the “Vertically Stacked Axes” from SciChart Examples. The main difference is that I can add DataSeries / YAxes on the fly.
The problem is that when I set VisibleRange and VisibleRangeLimit it does not crop the trace (as you can see on the Tan traces that are drawn on the whole surface).
Is there any way to crop the traces to VisibleRange of corresponding Axis?
- Jan Kaiser asked 9 years ago
- last active 9 years ago
take the SciChart Trader as an example, x-Axis is type of CategoryDateTimeAxis. I want a way to show the index of the time in the collection, when mouse moves over the price bar in some mode like Rollover or Cursor.
regards
chunxi
- chunxi asked 9 years ago
- last active 9 years ago
I’m trying to have a two charts which have a x-axis points (datetime) that doesn’t intersect. And i want charts was synchronized like this:
How you can see here upper chart doesn’t have a point at 10.12.2013, but lower has. Can i reach same effect by SciChart?
- l1pton17 asked 10 years ago
- last active 10 years ago
Hi,
I have some charts binded to a viewmodel. I wanted to produce a bar chart, so I want to modify the AxisAlignment.
If I specify a hardcoded alignment in the XAML, it works fine.
If I bind the alignment to the viewModel, the chart does not render, and I get the following error in the output:
SciChartSurface didn't render, because an exception was thrown:
Message: The specified Visual and this Visual do not share a common ancestor, so there is no valid transformation between the two Visuals.
Stack Trace: at System.Windows.Media.Visual.TransformToVisual(Visual visual)
at A.cac257c85637821690b32a44bda9b120f.cd0eaed29fc1e87dfe7aa912a7f678b57(FrameworkElement c5aaca7e2018a1512249ec2e2170b4cc6, UIElement c708323fb6eac118d4fd2c5913dc2a6ed)
at A.cac257c85637821690b32a44bda9b120f.cd0eaed29fc1e87dfe7aa912a7f678b57(FrameworkElement c5aaca7e2018a1512249ec2e2170b4cc6, IHitTestable cc9d5fbe91f2861ee865bbb5439d3b84d)
at Abt.Controls.SciChart.Visuals.Axes.AxisBase.GetAxisOffset()
at Abt.Controls.SciChart.Visuals.Axes.AxisBase.GetAxisParams()
at Abt.Controls.SciChart.Visuals.Axes.AxisBase.OnBeginRenderPass()
at A.cda144392e546b245ef5bb1ee71f22b3a.c64a51c8ba6b7cbda8b9d9380d6337036(ISciChartSurface c17037e8328cd0abc02d2a6957dfa450c, RenderPassInfo c16b8d70d2b6ecad8f9fca7ac3f5177b8)
at A.cda144392e546b245ef5bb1ee71f22b3a.c1a2306a5cc0452a04d135e77f0de4ff1(ISciChartSurface c17037e8328cd0abc02d2a6957dfa450c, Size cacf0a4a95d1143f0c11e20d4508e7132)
at A.cda144392e546b245ef5bb1ee71f22b3a.RenderLoop(IRenderContext2D renderContext)
at Abt.Controls.SciChart.Visuals.SciChartSurface.ca065c0b671221e0e603d0e9bf2792494()
This is the axis XAML:
<s:SciChartSurface.XAxis>
<s:NumericAxis AxisAlignment="{Binding XAxisAlignment}" LabelProvider="{Binding LabelProvider}" AutoTicks="False" MajorDelta="1" MinorDelta="1" DrawMinorGridLines="False">
</s:NumericAxis>
</s:SciChartSurface.XAxis>
<s:SciChartSurface.YAxis>
<s:NumericAxis AxisAlignment="{Binding YAxisAlignment}" AxisTitle="Number of crimes" GrowBy="0,1"/>
</s:SciChartSurface.YAxis>
And the properties I’m binding to:
public AxisAlignment XAxisAlignment { get; private set; }
public AxisAlignment YAxisAlignment { get; private set; }
Any help is appreciated.
Thanks,
Charbel
- cabdo asked 10 years ago
- last active 10 years ago