qq_58891096 2023-04-12 10:55 采纳率: 36.4%
浏览 91
已结题

wpf中使用oxyplot图表

大家上午好,我是最近开始学习使用oxyplot图表的,我是要将数据库里面的数据导入导入到图表中以折线图的形式看他们的变化趋势,在oxyplot中我的横坐标轴为日期时间轴对应的实现是如下

// 定义X轴为日期轴
            DateTime startdata = Convert.ToDateTime(StartTime); //startdata和enddata都等于类似2023/2/6 9:52:28这样格式的DataTime
            DateTime enddata = Convert.ToDateTime(EndTime);     //
            var minValue = DateTimeAxis.ToDouble(startdata);
            var maxValue = DateTimeAxis.ToDouble(enddata);        
             var ax = new DateTimeAxis()
             {
                    Minimum = minValue,
                    Maximum = maxValue,
                    StringFormat = "yyyy-MM-dd日",
                    Position = AxisPosition.Bottom,
                    IsZoomEnabled = true,
                    IsPanEnabled = true,
               };
                model.Axes.Add(ax);

我往里面添加的数据也是如2023/2/6 9:52:28这中形式

这是我声明的折线
// 定义三折线图序列,指定数据轴为Y2轴
            var passedRateSeries = new ThreeColorLineSeries();
            for (int i = 0; i < used.Count; i++)
            {
                passedRateSeries.Title = used[i].ToString();
            }
            passedRateSeries.YAxisKey = "y2";
            // 设置颜色阈值范围
            passedRateSeries.LimitHi = EndRange;
            passedRateSeries.LimitLo = StartRange;
            // 设置数据绑定源和字段
            passedRateSeries.ItemsSource = list;
            passedRateSeries.DataFieldX = "Date";  //他的横坐标绑定的也是一个对象对应的Date字段,一般也是2023/2/6 10:02:14这种形式            
            passedRateSeries.DataFieldY = "isc";
            // 添加图标资源
            //model.Series.Add(totalBarSeries);
            model.Series.Add(passedRateSeries);
            model.Axes.Add(ay2);

            // 设置图形边框
            model.PlotAreaBorderThickness = new OxyThickness(1, 0, 1, 1);

我的折线图最终显示

img

它的点都会挤在一起十分难看,而且我的数据基本隔一秒有一条,可能是因为数据点之间时间间隔都是一秒一个,导致数据点之间横向偏移很小,看着挤在一起,中间有的时间也没有数据,oxyplot图表也会将我断开的部分连起来,我就是想请教各位有没有什么办法能让这些点别挤在一起,看着数据点能清楚一点,而且我的数据在一天里面会有很多个点,该怎么拉大他的点与点之间横向间距,谢谢了

  • 写回答

4条回答 默认 最新

  • teellyy 2023-04-12 11:25
    关注

    您可以通过以下方法来解决您所遇到的问题:
    1.调整数据点之间的时间间隔。如果您的数据点之间时间间隔都是一秒一个,那么您可以尝试将其修改为更长的时间间隔,例如1分钟或者5分钟,这样能够有效减少数据点之间的密集程度。
    2.使用散点图而不是折线图。如果您的数据点比较密集,那么使用折线图可能会导致数据点之间挤在一起。您可以尝试使用散点图来代替折线图,将每个数据点独立显示,这样能够更加清楚地展示数据。
    3.修改横坐标轴的显示方式。您可以尝试缩小日期时间轴中每个标签的字体大小或者旋转标签的角度,从而让每个标签之间的距离更大,使得数据点之间不再挤在一起。
    4.使用平滑曲线。如果您的数据点比较密集,但是您仍然想使用折线图来展示数据趋势,那么您可以尝试使用平滑曲线来代替直线,这样能够让数据点更加平滑地连接在一起,降低数据点之间的密集程度。
    希望以上建议能够对您有所帮助。祝您使用oxyplot图表顺利!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月12日
  • 已采纳回答 4月12日
  • 赞助了问题酬金15元 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow
  • ¥15 densenet网络结构中,特征以cat方式复用后是怎么进行误差回传的
  • ¥15 STM32G471芯片spi设置了8位,总是发送16位
  • ¥15 R语言并行计算beta-NTI中tree文件的类型
  • ¥15 如何解读marsbar导出的ROI数据?
  • ¥20 求友友协助弄一下基于STC89C52单片机的声光控制灯原理图
  • ¥15 arduino双向交通灯设计
  • ¥15 有没有会粒子群算法的大能(○゜ε^○)求带不会出收敛图😭
  • ¥15 Matlab读取根元素出错