oxyplot图表中每个点坐标,可不可以对应三条信息

大家晚上好,这是我写的oxyplot图表,定义了x轴,y轴,通过点集合往折线图里面添加数据,所以我现在横坐标表示点的数量,纵坐标表示我某个参数的值,显示效果图在下面,我希望鼠标悬浮的时候能加第三个信息是能够显示点对应日期时间显示在第三行,每个点日期时间也可以通过我下面 LineDataSet来获取,只是new DataPoint(DateTimeAxis.ToDouble(point), value));中最多存放两个参数,所以我不知道有啥办法能实现我想的效果,谢谢大家了。

img

// 定义X轴
            var LinearAxis = new LinearAxis
            {
                Position = AxisPosition.Bottom,
                Title = "点数"
            };


            //定义第Y轴
            var LinearAyis = new LinearAxis()
            {
               Key = "y2",
               Position = AxisPosition.Right,
               IsZoomEnabled = true,                   
               IsPanEnabled = true,
               Title = "值"
            };

 

            var dataPoints = new List();
            for( int i = 0;i < LineDataSet.Count ; i++)
            {
                var point = i+1;
                var value = LineDataSet[i].isc;              
                dataPoints.Add(new DataPoint(DateTimeAxis.ToDouble(point), value));
            }

            var lineSeries = new OxyPlot.Series.LineSeries
            {
                Title = "数据趋势",
                ItemsSource = dataPoints
            };
            model.Series.Add(lineSeries);
            model.Axes.Add(LinearAyis);
            model.Axes.Add(LinearAxis);

内容来源与ChatGpt4及newbing和百度:


可以通过在每个数据点上添加一个Tooltip来实现鼠标悬浮时显示第三个信息。具体做法是,在每个数据点上添加一个ToolTip对象,然后将ToolTip的Content属性设置为包含三条信息的字符串。以下是示例代码:

// 定义一个数据点集合
var dataPoints = new List<DataPoint>
{
    new DataPoint(1, 10),
    new DataPoint(2, 20),
    new DataPoint(3, 30),
    new DataPoint(4, 40)
};

// 创建一个折线系列
var lineSeries = new LineSeries();

// 将数据点添加到折线系列中
lineSeries.ItemsSource = dataPoints;

// 遍历每个数据点,添加ToolTip
foreach (var dataPoint in dataPoints)
{
    // 创建一个ToolTip对象
    var toolTip = new ToolTip();

    // 设置ToolTip的Content属性为三条信息的字符串
    toolTip.Content = string.Format("X={0}, Y={1}, Info={2}", dataPoint.X, dataPoint.Y, "第三个信息");

    // 将ToolTip对象添加到数据点的Tag属性中
    dataPoint.Tag = toolTip;

    // 将ToolTip对象添加到折线系列的ToolTip属性中
    lineSeries.ToolTip = toolTip;
}

// 将折线系列添加到图表中
myPlotModel.Series.Add(lineSeries);

上述代码中,我在遍历数据点时,为每个数据点创建了一个ToolTip对象,并将其Content属性设置为包含三条信息的字符串。然后将ToolTip对象添加到数据点的Tag属性中,最后将ToolTip对象添加到折线系列的ToolTip属性中。这样,当鼠标悬浮在数据点上时,就会显示出包含三条信息的ToolTip。


祝您问题迎刃而解