SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and iOS Chart & Android Chart Components
Please use the forums below to ask questions about SciChart. Take a moment to read our Question asking guidelines on how to ask a good question and our support policy. We also have a tag=SciChart on Stackoverflow.com where you can earn rep for your questions!
Please note: SciChart team will only answer questions from customers with active support subscriptions. Expired support questions will be ignored. If your support status shows incorrectly, contact us and we will be glad to help.
There is interesting situation when I’m trying to show volumes on charts in my application. On the first screen you can see that on the left side of the image there is height values of volumes (the data is between 2.000.000 and 5.000.000), on the other side are low (they are between 0 and 100.000 in true values and hardcoded in my sample). It looks like correct because of low vaues, but when i’m scrolling screen to the later data (seconds screenshot), it “jumps” and displays with full-size (on image I’m hardcoded values for 3.000.000, so that’s why they are equals).
When data is hardcoded for 3.000.000 I think it should be closer to the preveous “true” values which are on the left side, but they are not.
It looks like the bottom side of the candles extruding them.
What is the reason of this behaviour? How can I correctly display this data?
For renderSurface I’m using GLTextureView
There is a code:
final IAxis yLeftAxis = sciChartBuilder.newNumericAxis() .withGrowBy(0, 5d) .withAxisAlignment(AxisAlignment.Left) .withAutoRangeMode(AutoRange.Always) .withAxisId("SecondaryAxisId") .withDrawMajorTicks(false) .withDrawMinorTicks(false) .withDrawMajorGridLines(false) .withDrawMinorGridLines(false) .withDrawMajorBands(false) .withDrawMinorTicks(false) .withVisibility(View.GONE) .build(); mMountainDataSeries = sciChartBuilder.newXyDataSeries(Date.class, Double.class) .withSeriesName("Mountain Series") .build(); mColumnDataSeries = sciChartBuilder.newXyDataSeries(Date.class, Long.class) .withSeriesName("Column Series") .build(); mOhlcDataSeries = sciChartBuilder.newOhlcDataSeries(Date.class, Double.class) .withSeriesName("Candlestick Series") .build(); mMountainRenderableSeries = sciChartBuilder.newMountainSeries() .withDataSeries(mMountainDataSeries) .withYAxisId("PrimaryAxisId") .withStrokeStyle(0xFF0b1f35) .withAreaFillLinearGradientColors(0x1A384F7B, 0x000b1f35) .withIsVisible(false) .build(); mCandlebarRenderableSeries = sciChartBuilder.newOhlcSeries() .withDataSeries(mOhlcDataSeries) .withYAxisId("PrimaryAxisId") .withIsVisible(false) .build(); mCandlestickRenderableSeries = sciChartBuilder.newCandlestickSeries() .withDataSeries(mOhlcDataSeries) .withYAxisId("PrimaryAxisId") .withIsVisible(true) .build(); mColumnRenderableSeries = sciChartBuilder.newColumnSeries() .withDataSeries(mColumnDataSeries) .withYAxisId("SecondaryAxisId") .withDataPointWidth(0.8) .withPaletteProvider(new ColumnsPaletteProvider(mCandlestickRenderableSeries, mCandlebarRenderableSeries)) .build();
On the attached image you can see what happend when I removed ‘AutoRange.Always’
What do you mean by “set some VisibleRange which won’t be changed in further ( e.g. from 0 to 150.000 or some other value which is equal to max possible Volume value)”?
Should I add some check for values and if they are between some values (in your example 0..150.000) and made some specific actions over the chart?
Please login first to submit.