多轴
 

主轴

绘图始终有4个基本轴可供使用。主轴(X轴和Y轴)的轴索引为0。次轴(XAxis2和YAxis2)是轴索引1。默认情况下,主轴是完全可见的,次轴隐藏了记号,没有标签。有时会给顶轴(XAxis2)一个标签,以模拟打印标题。

var plt = new ScottPlot.Plot(600, 400);

// plot one set of data using the primary Y axis
var sigSmall = plt.AddSignal(DataGen.Sin(51, mult: 1), sampleRate: 1);
sigSmall.YAxisIndex = 0;
sigSmall.XAxisIndex = 0;
plt.XAxis.Label("Primary X Axis");
plt.YAxis.Label("Primary Y Axis");
plt.XAxis.Color(sigSmall.Color);
plt.YAxis.Color(sigSmall.Color);

// plot another set of data using the secondary axes
var sigBig = plt.AddSignal(DataGen.Cos(51, mult: 100), sampleRate: 100);
sigBig.YAxisIndex = 1;
sigBig.XAxisIndex = 1;
plt.YAxis2.Ticks(true); // ticks weren't visible by default
plt.XAxis2.Ticks(true); // ticks weren't visible by default
plt.YAxis2.Color(sigBig.Color);
plt.XAxis2.Color(sigBig.Color);
plt.YAxis2.Label("Secondary Y Axis");
plt.XAxis2.Label("Secondary X Axis");

plt.SaveFig("multiAxis_primary.png");
 

附加Y轴

可以在任何边上添加其他轴。其他轴堆叠在远离绘图区域的位置。

var plt = new ScottPlot.Plot(600, 400);

// plot one set of data using the primary Y axis
var sigSmall = plt.AddSignal(DataGen.Sin(51, mult: 1));
sigSmall.YAxisIndex = 0;
plt.YAxis.Label("Primary Axis");
plt.YAxis.Color(sigSmall.Color);

// plot another set of data using an additional axis
var sigBig = plt.AddSignal(DataGen.Cos(51, mult: 100));
var yAxis3 = plt.AddAxis(Renderable.Edge.Left, axisIndex: 2);
sigBig.YAxisIndex = 2;
yAxis3.Label("Additional Axis");
yAxis3.Color(sigBig.Color);

plt.SaveFig("multiAxis_additional.png");
 

右Y轴

本例演示了如何在图形右侧显示Y轴。图形右侧的垂直轴是索引1,因此必须更新绘图,以指示它们将使用非标准轴索引。

var plt = new ScottPlot.Plot(600, 400);

double[] values = DataGen.RandomWalk(100);
var sig = plt.AddSignal(values);
sig.YAxisIndex = 1;

plt.YAxis.Ticks(false);
plt.YAxis.Grid(false);
plt.YAxis2.Ticks(true);
plt.YAxis2.Grid(true);
plt.YAxis2.Label("Value");
plt.XAxis.Label("Sample Number");

plt.SaveFig("multiAxis_right.png");
 

顶部Y轴

此示例演示如何在地物上方显示X轴。地物上方的水平轴是索引1,因此必须更新绘图,以指示它们将使用非标准轴索引。

var plt = new ScottPlot.Plot(600, 400);

double[] values = DataGen.RandomWalk(100);
var sig = plt.AddSignal(values);
sig.XAxisIndex = 1;

plt.XAxis.Ticks(false);
plt.XAxis.Grid(false);
plt.XAxis2.Ticks(true);
plt.XAxis2.Grid(true);
plt.XAxis2.Label("Sample Number");
plt.YAxis.Label("Value");

plt.SaveFig("multiAxis_top.png");
 

轴可见性

可以切换轴的可见性。在本例中,添加了一个额外的Y轴,但隐藏了主Y轴。结果是一个似乎只有一个Y轴的绘图。

var plt = new ScottPlot.Plot(600, 400);

// plot one set of data using the primary Y axis
var sigSmall = plt.AddSignal(DataGen.Sin(51, mult: 1));
sigSmall.YAxisIndex = 0;
plt.YAxis.Label("Primary Axis");
plt.YAxis.Color(sigSmall.Color);

// plot another set of data using an additional axis
var sigBig = plt.AddSignal(DataGen.Cos(51, mult: 100));
var yAxis3 = plt.AddAxis(Renderable.Edge.Left, axisIndex: 2);
sigBig.YAxisIndex = 2;
yAxis3.Label("Additional Axis");
yAxis3.Color(sigBig.Color);

// hide the primary Y axis
plt.YAxis.IsVisible = false;

plt.SaveFig("multiAxis_invisible.png");