qq_58891096 2023-04-12 19:59 采纳率: 36.4%
浏览 46
已结题

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<DataPoint>();
            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);
  • 写回答

1条回答 默认 最新

  • 美羊羊桑7890 2023-04-13 09:24
    关注

    内容来源与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。


    祝您问题迎刃而解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 赞助了问题酬金15元 4月13日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用