ScottPlot.NET 轴线

轴线

轴线是跨越整个轴的垂直线或水平线。

  

AxisLines.cs

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();


轴线标签

轴线具有标签,可用于在它们所附加到的轴上显示任意文本。

  

AxisLines.cs

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();


轴线标签定位

轴线标签可以具有自定义定位,包括旋转和对齐。

  

AxisLines.cs

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();


轴线型

轴线具有广泛的自定义选项。

  

AxisLines.cs

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。

  

AxisLines.cs

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() 或中键单击绘图将设置轴限制以适应数据。默认情况下,轴线和跨度的位置包含在自动轴限制计算中,但可以设置一个标志,以便在自动缩放绘图时忽略某些绘图表。

  

AxisLines.cs

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();


带限制的轴线

默认情况下,轴线在两个方向上无限延伸,但可以指定上限和下限来限制轴线的尺寸。

  

AxisLines.cs

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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_shenbing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值