IMSL C# Chart Programmers Guide | Picture-in-Picture |
Picture-in-Picture
The picture-in-picture effect can be obtained by using the Viewport
attribute.
This sets the fraction of the screen into which the chart is to be drawn. The Viewport
attributes value is a double[4]
containing {xmin, xmax, ymin, ymax}, on a
[0,1] by [0,1] grid with (0,0) at the top-left.
This chart tree for the above picture consists of a chart with an AxisXY
child and
a Pie
child. (The Pie
class is a subclass of Axis.) The Viewport
attribute of the
Pie
node is set to a non-default value.
(Download Code)
using System; using System.Windows.Forms; using System.Drawing; using Imsl.Chart2D; public class SamplePnP : FrameChart { public SamplePnP() { Chart chart = this.Chart; CreateLineChart(chart); CreatePieChart(chart); } private void CreateLineChart(Chart chart) { AxisXY axis = new AxisXY(chart); int npoints = 20; double dx = 0.5 * Math.PI/(npoints-1); double[] x = new double[npoints]; double[] y = new double[npoints]; for (int i = 0; i < x.Length; i++){ x[i] = i * dx; y[i] = Math.Sin(x[i]); } new Data(axis, x, y); } private void CreatePieChart(Chart chart) { double[] y = new double[] {10, 20, 30, 40}; Pie pie = new Pie(chart, y); pie.LabelType = Pie.LABEL_TYPE_TITLE; pie.SetViewport(0.5, 0.9, 0.3, 0.8); PieSlice[] slice = pie.GetPieSlice(); slice[0].SetTitle(Red); slice[0].FillColor = Color.Red; slice[0].Explode = 0.2; slice[1].SetTitle(Blue); slice[1].FillColor = Color.Blue; slice[2].SetTitle(Black); slice[2].FillColor = Color.Black; slice[3].SetTitle(Green); slice[3].FillColor = Color.Green; } public static void Main(string[] argv) { System.Windows.Forms.Application.Run(new SamplePnP()); } }
© Visual Numerics, Inc. All rights reserved. |