大家下午好,当我的横坐标是书值类型的轴,纵坐标也是数值类型的轴,坐标轴以及折线声明如下,添加数据点的横纵坐标都是数值类型
// 定义X轴
var LinearAxis = new LinearAxis
{
Position = AxisPosition.Bottom,
Title = "点数"
};
//定义第Y轴
var LinearAyis = new LinearAxis()
{
Key = "y2",
Position = AxisPosition.Right,
IsZoomEnabled = true,
IsPanEnabled = true,
Title = "值"
};
List<DataPoint> dataPoints = new List<DataPoint>();
var lineSeries = new ThreeColorLineSeries()
{
Title = "数据趋势",
ItemsSource = dataPoints,
};
for (int i = 0; i < LineDataSet.Count; i++)
{
var number = i+1;
var value = LineDataSet[i].isc;
dataPoints.Add(new DataPoint(DateTimeAxis.ToDouble(number), value));
}
model.Series.Add(lineSeries);
model.Axes.Add(LinearAyis);
model.Axes.Add(LinearAxis);
// 设置图形边框
model.PlotAreaBorderThickness = new OxyThickness(1, 0, 1, 1);
对应折线图的效果如下
我现在就想当我鼠标触碰到线上时,显示的是我每个点对应的日期时间,日期时间我可以获取到,所以我试着把横坐标轴换成了日期时间轴也就是代码里面的
var ax = new DateTimeAxis()
{
Position = AxisPosition.Bottom,
Title = "点数"
};
但是显示出来的效果却不尽如人意,效果如下,我上面因为我点的日期都是间隔一秒一个,导致我的点都挤在一起,而且在有的时间段里面我的线条对应没有点,但图表会强行连接起来,如下图,下面我圈起来的有一定倾斜角的直线上都是没有数据的
所以我现在想要上面第一种那种折线效果,横坐标轴可有可无,与第一个图的差别就是当鼠标触碰到上面的折线是鼠标横坐标显示的是对应点的日期,但是不要想图2一样点挤在一起。每个点横坐标显示日期时间,纵坐标显示一个参数值