轴线
轴线是跨越整个轴的垂直线或水平线。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
WpfPlot1.Plot.Add.VerticalLine(24);
WpfPlot1.Plot.Add.HorizontalLine(0.73);
WpfPlot1.Refresh();
轴线标签
轴线具有标签,可用于在它们所附加到的轴上显示任意文本。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
// by default labels are drawn on the same side as the axis label
var axLine1 = WpfPlot1.Plot.Add.VerticalLine(24);
axLine1.Text = "Line 1";
var axLine2 = WpfPlot1.Plot.Add.HorizontalLine(0.75);
axLine2.Text = "Line 2";
// labels may be drawn on the side opposite of the axis label
var axLine3 = WpfPlot1.Plot.Add.VerticalLine(37);
axLine3.Text = "Line 3";
axLine3.LabelOppositeAxis = true;
var axLine4 = WpfPlot1.Plot.Add.HorizontalLine(-.75);
axLine4.Text = "Line 4";
axLine4.LabelOppositeAxis = true;
// extra padding on the right and top ensures labels have room
WpfPlot1.Plot.Axes.Right.MinimumSize = 30;
WpfPlot1.Plot.Axes.Top.MinimumSize = 30;
WpfPlot1.Refresh();
轴线标签定位
轴线标签可以具有自定义定位,包括旋转和对齐。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
var axLine1 = WpfPlot1.Plot.Add.VerticalLine(42);
axLine1.Text = "Line 1";
axLine1.LabelRotation = -90;
axLine1.LabelAlignment = Alignment.MiddleRight;
var axLine2 = WpfPlot1.Plot.Add.HorizontalLine(0.75);
axLine2.Text = "Line 2";
axLine2.LabelRotation = 0;
axLine2.LabelAlignment = Alignment.MiddleRight;
var axLine3 = WpfPlot1.Plot.Add.VerticalLine(20);
axLine3.Text = "Line 3";
axLine3.LabelRotation = -45;
axLine3.LabelAlignment = Alignment.UpperRight;
// extra padding on the bottom and left for the rotated labels
WpfPlot1.Plot.Axes.Bottom.MinimumSize = 60;
WpfPlot1.Plot.Axes.Left.MinimumSize = 60;
WpfPlot1.Refresh();
轴线型
轴线具有广泛的自定义选项。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
var vl1 = WpfPlot1.Plot.Add.VerticalLine(24);
vl1.LineWidth = 3;
vl1.Color = Colors.Magenta;
var hl1 = WpfPlot1.Plot.Add.HorizontalLine(0.75);
hl1.LineWidth = 2;
hl1.Color = Colors.Green;
hl1.LinePattern = LinePattern.Dashed;
var hl2 = WpfPlot1.Plot.Add.HorizontalLine(-.23);
hl2.LineColor = Colors.Navy;
hl2.LineWidth = 5;
hl2.Text = "Hello";
hl2.LabelFontSize = 24;
hl2.LabelBackgroundColor = Colors.Blue;
hl2.LabelFontColor = Colors.Yellow;
hl2.LinePattern = LinePattern.DenselyDashed;
WpfPlot1.Refresh();
图例中的轴线
如果设置了轴线的 Text 属性,则轴线将添加到图例中,除非其 ExcludeFromLegend 属性为 true。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
var axLine1 = WpfPlot1.Plot.Add.VerticalLine(24);
axLine1.Text = "Line 1";
var axLine2 = WpfPlot1.Plot.Add.HorizontalLine(0.75);
var axLine3 = WpfPlot1.Plot.Add.VerticalLine(37);
axLine3.Text = "Line 3";
axLine3.ExcludeFromLegend = true;
var axLine4 = WpfPlot1.Plot.Add.HorizontalLine(0.25);
axLine4.Text = "Line 4";
var axLine5 = WpfPlot1.Plot.Add.HorizontalLine(-.75);
axLine5.Text = "Line 5";
axLine5.ExcludeFromLegend = true;
WpfPlot1.Plot.ShowLegend();
WpfPlot1.Refresh();
自动缩放时忽略
调用 Plot.Axes.AutoScale() 或中键单击绘图将设置轴限制以适应数据。默认情况下,轴线和跨度的位置包含在自动轴限制计算中,但可以设置一个标志,以便在自动缩放绘图时忽略某些绘图表。
WpfPlot1.Plot.Add.Signal(Generate.Sin(51));
WpfPlot1.Plot.Add.Signal(Generate.Cos(51));
var hline = WpfPlot1.Plot.Add.HorizontalLine(0.23);
hline.IsDraggable = true;
hline.EnableAutoscale = false;
var hSpan = WpfPlot1.Plot.Add.HorizontalSpan(-10, 20);
hSpan.IsDraggable = true;
hSpan.EnableAutoscale = false;
WpfPlot1.Refresh();
带限制的轴线
默认情况下,轴线在两个方向上无限延伸,但可以指定上限和下限来限制轴线的尺寸。
WpfPlot1.Plot.Add.Signal(Generate.Sin());
WpfPlot1.Plot.Add.Signal(Generate.Cos());
var vLine = WpfPlot1.Plot.Add.VerticalLine(24);
vLine.Minimum = -.5;
vLine.Maximum = 0.5;
var hLine = WpfPlot1.Plot.Add.HorizontalLine(0.73);
hLine.Minimum = 10;
hLine.Maximum = 40;
WpfPlot1.Refresh();