// Create a ValueRangePalette to present Heatmap's data. private ValueRangePalette CreatePalette(IntensityGridSeries series) { // 2. Creating palette for IntensityGridSeries. var palette = new ValueRangePalette(series); // 3. LightningChart has some preset values for palette steps. // Clear the preset values from palette before setting new ones. foreach (var step in palette.Steps) { step.Dispose(); } palette.Steps.Clear(); // 4. Adding steps into palette. // Palette is used for presenting data in Heat Map with different colors based on their value. palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 0, 255), -25)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(20, 150, 255), 0)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 255, 0), 25)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 255, 20), 50)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 150, 20), 75)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 0, 0), 100)); palette.Type = PaletteType.Gradient; palette.MinValue = -50; // Return the created palette. return(palette); }
// Create a ValueRangePalette to present SurfaceGrid's data. private ValueRangePalette CreatePalette(SurfaceGridSeries3D series) { // Creating palette for SurfaceGridSeries3D. var palette = new ValueRangePalette(series); // LightningChart has some preset values for palette steps. // Clear the preset values from palette before setting new ones. foreach (var step in palette.Steps) { step.Dispose(); } palette.Steps.Clear(); // Add steps into palette. // Palette is used for presenting data in SurfaceGrid with different colors based on their value. palette.Steps.Add(new PaletteStep(palette, Color.Blue, -25)); palette.Steps.Add(new PaletteStep(palette, Color.DodgerBlue, 0)); palette.Steps.Add(new PaletteStep(palette, Color.LawnGreen, 25)); palette.Steps.Add(new PaletteStep(palette, Color.Yellow, 50)); palette.Steps.Add(new PaletteStep(palette, Color.Orange, 75)); palette.Steps.Add(new PaletteStep(palette, Color.Red, 100)); palette.Type = PaletteType.Gradient; palette.MinValue = -50; // Return the created palette. return(palette); }
/// <summary> /// 设置调色板的颜色区间 /// </summary> /// <param name="ownerSeries"></param> /// <param name="valueMin"></param> /// <param name="valueMax"></param> /// <returns></returns> private ValueRangePalette CreatePalette(IntensityGridSeries ownerSeries, double valueMin, double valueMax) { ValueRangePalette palette = new ValueRangePalette(ownerSeries); palette.Steps.Clear(); ExampleUtils.DisposeAllAndClear(palette.Steps); double valueStep = (valueMax - valueMin) / 20.0; palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(0, 17, 190), valueMin)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(0, 17, 190), valueMin + valueStep * 2)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(0, 151, 255), valueMin + valueStep * 3)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(0, 221, 151), valueMin + valueStep * 4)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(34, 236, 85), valueMin + valueStep * 5)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(84, 255, 51), valueMin + valueStep * 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(135, 255, 17), valueMin + valueStep * 7)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(169, 255, 0), valueMin + valueStep * 8)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(204, 255, 0), valueMin + valueStep * 9)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 255, 0), valueMin + valueStep * 10)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 204, 0), valueMin + valueStep * 11)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 170, 0), valueMin + valueStep * 12)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 136, 0), valueMin + valueStep * 13)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 92, 0), valueMin + valueStep * 14)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 51, 0), valueMin + valueStep * 15)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 36, 0), valueMin + valueStep * 16)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 56, 56), valueMin + valueStep * 17)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 115, 171), valueMin + valueStep * 18)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 170, 238), valueMin + valueStep * 19)); palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(255, 220, 255), valueMin + valueStep * 20)); palette.Type = PaletteType.Gradient; palette.MinValue = valueMin; return(palette); }
// Create chart instance. public void CreateChart() { // Create chart. _chart = new LightningChartUltimate(); // Set chart control into the parent container. _chart.Parent = this; _chart.Dock = DockStyle.Fill; // Disable rendering before updating chart properties to improve performance // and to prevent unnecessary chart redrawing while changing multiple properties. _chart.BeginUpdate(); // 1. Set View3D as active view and set Y-axis range. _chart.ActiveView = ActiveView.View3D; _chart.View3D.YAxisPrimary3D.SetRange(-50, 100); // Set a LegendBox into a chart with vertical layout. _chart.View3D.LegendBox.Layout = LegendBoxLayout.Vertical; // 2. Create a new SurfaceGrid instance as SurfaceGridSeries3D. _surfaceGrid = new SurfaceGridSeries3D(_chart.View3D, Axis3DBinding.Primary, Axis3DBinding.Primary, Axis3DBinding.Primary); // 3. Set range, size and color saturation options for SurfaceGrid. _surfaceGrid.RangeMinX = MinX; _surfaceGrid.RangeMaxX = MaxX; _surfaceGrid.RangeMinZ = MinZ; _surfaceGrid.RangeMaxZ = MaxZ; _surfaceGrid.SizeX = _columns; _surfaceGrid.SizeZ = _rows; // Stronger colors. _surfaceGrid.ColorSaturation = 80; // 4. Create ValueRangePalette for coloring SurfaceGrid's data. ValueRangePalette palette = CreatePalette(_surfaceGrid); _surfaceGrid.ContourPalette = palette; // 5. Define WireFrameType and ContourLineType for SurfaceGrid. _surfaceGrid.WireframeType = SurfaceWireframeType3D.WireframePalettedByY; _surfaceGrid.ContourLineType = ContourLineType3D.ColorLineByY; _surfaceGrid.ContourLineWidth = 2; // Add SurfaceGridSeries to chart. _chart.View3D.SurfaceGridSeries3D.Add(_surfaceGrid); #region Hidden polishing // Customize chart. CustomizeChart(_chart); #endregion // Call EndUpdate to enable rendering again. _chart.EndUpdate(); }
private ValueRangePalette CreatePalette(SeriesBase3D ownerSeries, double valueMax) { ValueRangePalette palette = new ValueRangePalette(ownerSeries); palette.Steps.Clear(); palette.MinValue = 0; palette.Type = PaletteType.Gradient; palette.Steps.Add(new PaletteStep(palette, Colors.Blue, 0)); palette.Steps.Add(new PaletteStep(palette, Colors.Green, valueMax * 0.3)); palette.Steps.Add(new PaletteStep(palette, Colors.Yellow, valueMax * 0.6)); palette.Steps.Add(new PaletteStep(palette, Colors.Red, valueMax)); return(palette); }
/// <summary> /// 创建强度多色阶调色板 /// </summary> /// <param name="ownerSeries">父</param> /// <param name="yRange">y值范围</param> /// <returns></returns> private ValueRangePalette CreatePalette(IntensitySeriesBase ownerSeries, double yRange) { ValueRangePalette palette = new ValueRangePalette(ownerSeries); DisposeAllAndClear(palette.Steps); palette.Steps.Add(new PaletteStep(palette, Colors.Black, 0)); palette.Steps.Add(new PaletteStep(palette, Colors.Lime, 30 * yRange / 100.0)); palette.Steps.Add(new PaletteStep(palette, Colors.Yellow, 60.0 * yRange / 100.0)); palette.Steps.Add(new PaletteStep(palette, Colors.Red, 100.0 * yRange / 100.0)); palette.Type = PaletteType.Gradient; return(palette); }
private ValueRangePalette CreatePalette(SeriesBaseXY ownerSeries, double min, double max) { ValueRangePalette palette = new ValueRangePalette(ownerSeries); double range = max - min; palette.Steps.Clear(); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 0, 0), min)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 0, 255), min + 1 * range / 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 255, 255), min + 2 * range / 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(0, 255, 0), min + 3 * range / 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 255, 0), min + 4 * range / 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 0, 0), min + 5 * range / 6)); palette.Steps.Add(new PaletteStep(palette, Color.FromRgb(255, 0, 255), max)); palette.Type = PaletteType.Gradient; palette.MinValue = min; return(palette); }
private ValueRangePalette CreatePalette(SeriesBase3D ownerSeries, double max) { ValueRangePalette palette = new ValueRangePalette(ownerSeries); palette.Steps.Clear(); //Transparent value for 'invalid' points. They are way below this value and thus become transparent palette.Steps.Add(new PaletteStep(palette, Color.FromArgb(0, 0, 0, 0), -0.01)); //Actual steps palette.Steps.Add(new PaletteStep(palette, Colors.Blue, 0)); palette.Steps.Add(new PaletteStep(palette, Colors.Green, max * 0.3)); palette.Steps.Add(new PaletteStep(palette, Colors.Yellow, max * 0.6)); palette.Steps.Add(new PaletteStep(palette, Colors.Red, max)); palette.Type = PaletteType.Gradient; return(palette); }