wpf-折线图绘制2-oxyplot-2
作者:互联网
上一篇在:wpf-折线图绘制2-oxyplot-1
设置图本身
IsLegendVisible = true; // 是否显示图例
PlotAreaBorderColor = OxyColors.Transparent; // 图边界的颜色
这些都是model层的设置,对应上一篇,就是_viewModel.SimplePlotModel的属性。
设置坐标轴
简单示例
LinearAxis xAxis = new LinearAxis() {
Position = AxisPosition.Bottom, // 设置相对于图像的位置
Minimum = 0,
AbsoluteMinimum = 0, // 放缩的下界
Maximum = 100,
IsAxisVisible = true,
IsPanEnabled = false, // 是否能拖动
IsZoomEnabled = false, // 是否能放缩
TickStyle = TickStyle.None, // 刻度的样式。None表示不显示
//MajorStep = 1,
AxislineStyle = LineStyle.Solid, // 轴的样式
AxislineColor = OxyColor.Parse("#9C9C9C"), // 轴的颜色
AxislineThickness = 1, // 轴的粗细
};
坐标轴的设定请参考上一篇里链接的公共属性:
公共属性介绍
改变轴上标签的格式
比如我想只显示10, 20, 30, …这种,或者X1, X2, X3…这种。默认的话,轴显示的刻度是20, 40…(当然刻度会随放大缩小程度改变)。
因为我要显示的标签,仍然是与x值有关的,所以不能用CategoryAxis,因为会无法对齐图像。所以还是用LinearAxis,但修改LabelFormatter标签。这里使用delegate,x就是坐标轴的值,返回值是一个字符串,就是要显示在轴上的标签。可以根据x的值返回不同内字符串,以此实现对标签的内容控制。
LabelFormatter = delegate(double x) {
return ""; // 只是举例,这样可以实现标签的隐藏
},
轴平移放缩和恢复触发的事件
AxisChangeTypes还有Pan和Reset。
yAxis.AxisChanged += (sender, e) => {
if (e.ChangeType == AxisChangeTypes.Zoom) {
...
}
};
控制
左键拖动
如果开启了平移和放大缩小,那么滚轮控制放大缩小,按住右键实现平移,左键负责点击事件。但有时希望按住左键实现拖动,那么这样修改。(然后点击事件不行了。。。)
var myController = new PlotController();
myController.UnbindMouseDown(OxyMouseButton.Right);
myController.BindMouseDown(OxyMouseButton.Left, PlotCommands.PanAt);
myPlot.Controller = myController;
其中前台有
<oxy:PlotView x:Name="myPlot"/>
标签:oxyplot,LinearAxis,标签,放缩,坐标轴,刻度,折线图,wpf,myController 来源: https://blog.csdn.net/pxy7896/article/details/120430239