每天进步一点点_小白白 2024-08-09 19:40 采纳率: 42.9%
浏览 810
已结题

c# 用scottplot画 以时间为纵坐标,数值为横坐标画曲线图

如题c#
如(7:2024-07-08 17:20) (5,2024-07-08 17:22) (8 2024-07-08 17:23)这些散点画到坐标系上。并且这些点用不同的颜色。

  • 写回答

22条回答 默认 最新

  • 阿里嘎多学长 2024-08-09 19:41
    关注
    获得0.30元问题酬金

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    您好!根据您提供的需求,我将为您提供一个使用C#和ScottPlot库绘制以时间为纵坐标、数值为横坐标的散点图的示例代码。这个示例将展示如何添加散点数据,并为每个点指定不同的颜色。

    首先,确保您已经安装了ScottPlot库。如果尚未安装,可以通过NuGet包管理器安装它。

    以下是示例代码:

    using ScottPlot; // 引入ScottPlot库
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    
    public class Program
    {
        public static void Main()
        {
            DrawScatterPlot();
        }
    
        public static void DrawScatterPlot()
        {
            var plt = new Plot(); // 创建一个新的图表实例
    
            // 假设的数据点,包含数值、时间以及颜色
            var points = new List<(double x, DateTime y, Color color)>
            {
                (7, DateTime.Parse("2024-07-08 17:20"), Color.Red),
                (5, DateTime.Parse("2024-07-08 17:22"), Color.Green),
                (8, DateTime.Parse("2024-07-08 17:23"), Color.Blue)
            };
    
            // 将时间转换为适合图表的格式,这里我们使用时间的Ticks属性
            var xValues = points.Select(p => p.y.Ticks).ToList();
            var yValues = points.Select(p => p.x).ToList();
            var colors = points.Select(p => p.color).ToList();
    
            // 绘制散点图,使用不同的颜色
            plt.AddScatter(xValues, yValues, color: colors);
    
            // 设置图表标题和坐标轴标签
            plt.Title("Scatter Plot with Time as Y-Axis");
            plt.XLabel("Value");
            plt.YLabel("Time");
    
            // 设置Y轴的时间格式
            plt.YAxis.Format(x => new DateTime((long)x).ToString("yyyy-MM-dd HH:mm"));
    
            // 显示图表
            plt.Display();
        }
    }
    

    在这个示例中,我们首先创建了一个Plot对象。然后,我们定义了一个包含散点数据的列表,其中每个点由数值、时间以及颜色组成。我们将时间转换为DateTime对象的Ticks属性,以便在图表上表示。我们使用AddScatter方法添加散点到图表上,并指定了每个点的颜色。

    我们还设置了图表的标题和坐标轴标签。特别地,我们使用plt.YAxis.Format方法来设置Y轴的时间格式,使其以易读的方式显示时间。

    最后,我们调用Display方法来显示图表。请注意,这个示例适用于支持GUI的C#环境,如Windows Forms或WPF。

    希望这个示例能够帮助您实现所需的功能。如果您有任何问题或需要进一步的帮助,请随时提问。

    评论

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 创建了问题 8月9日