c# – OxyPlot:如何使用轴标签格式化程序并显示Y标签?
发布时间:2020-12-15 23:34:40 所属栏目:百科 来源:网络整理
导读:我正在使用Oxyplot为我的Xamarin.iOS项目绘制条形图.. 这是我的图表目前看起来喜欢的 这里是x轴值而不是数字,我想显示太阳,mon true,wed ….. 我可以看到CategoryAxis有一个名为LabelFormatter的方法,它返回Func double,string,但我该如何使用它? 还有为什
我正在使用Oxyplot为我的Xamarin.iOS项目绘制条形图..
这是我的图表目前看起来喜欢的 这里是x轴值而不是数字,我想显示太阳,mon true,wed ….. 我可以看到CategoryAxis有一个名为LabelFormatter的方法,它返回Func< double,string>,但我该如何使用它? 还有为什么Y轴标签没有显示? public class MyClass { /// <summary> /// Gets or sets the plot model that is shown in the demo apps. /// </summary> /// <value>My model.</value> public PlotModel MyModel { get; set; } /// <summary> /// Initializes a new instance of the <see cref="OxyPlotSample.MyClass"/> class. /// </summary> public MyClass() { var model = new PlotModel { Title = "ColumnSeries" }; model.PlotAreaBorderColor = OxyColors.Transparent; // A ColumnSeries requires a CategoryAxis on the x-axis. model.Axes.Add(new CategoryAxis() { Position = AxisPosition.Bottom,MinorTickSize = 0,MajorTickSize = 0,//MajorGridlineStyle = LineStyle.Solid,//MinorGridlineStyle = LineStyle.Solid,}); model.Axes.Add(new LinearAxis() { AxislineStyle = LineStyle.None,Position = AxisPosition.Left,MajorGridlineStyle = LineStyle.Solid,MinorGridlineStyle = LineStyle.Solid,Minimum = 0,Maximum = 400,}); var series = new ColumnSeries(); series.Items.Add(new ColumnItem() { Value = 200,Color = OxyColors.Orange}); series.Items.Add(new ColumnItem(200)); series.Items.Add(new ColumnItem(300)); series.Items.Add(new ColumnItem(100)); series.Items.Add(new ColumnItem(200)); series.Items.Add(new ColumnItem(100)); series.Items.Add(new ColumnItem(130)); model.Series.Add(series); this.MyModel = model; } } 解决方法
要在轴上显示标签,您必须指定属性MajorStep,Oxyplot将仅绘制与主要步骤匹配的标签.
model.Axes.Add(new LinearAxis() { MajorStep = 10,... }); 要使用日期名称修改标签,可以使用DateTimeAxis而不是LinearAxis: model.Axes.Add(new DateTimeAxis() { StringFormat = "ddd",Position = AxisPosition.Bottom,... }); 如果您想要更自定义的内容,则必须使用LabelFormatter属性. 编辑: CategoryAxis中的标签: var categoryAxis = new CategoryAxis() { Position = AxisPosition.Bottom,... }; categoryAxis.ActualLabels.Add("Mon"); categoryAxis.ActualLabels.Add("Tue"); categoryAxis.ActualLabels.Add("Wed"); categoryAxis.ActualLabels.Add("Thu"); categoryAxis.ActualLabels.Add("Fri"); categoryAxis.ActualLabels.Add("Sat"); categoryAxis.ActualLabels.Add("Sun"); Model.Axes.Add(categoryAxis); CategoryAxis.ActualLabels是readOnly,因此您必须逐个添加项目. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |