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 attribute’s 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.
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());
}
}
PHONE: 713.784.3131 FAX:713.781.9260 |