C# 折线图x点值自动调整大小形成键值字典

C# 折线图x点值自动调整大小形成键值字典,c#,linq,dictionary,charts,C#,Linq,Dictionary,Charts,我有一个问题,我提供了一个键值对的集合(要显示的图表的x,y值) 例如: Dictionary<int, double> values = new Dictionary<int, double> { {1, 12}, {2, 25}, {3, 77},

我有一个问题,我提供了一个键值对的集合(要显示的图表的x,y值)

例如:

           Dictionary<int, double> values = new Dictionary<int, double>
                    {
                        {1, 12},
                        {2, 25},
                        {3, 77},
                        {4, 12},
                        {5, 25},
                        {6, 77},
                        {7, 12},
                        {8, 25},
                        {9, 77},
                        {10, 12}
                    };
字典值=新字典
{
{1, 12},
{2, 25},
{3, 77},
{4, 12},
{5, 25},
{6, 77},
{7, 12},
{8, 25},
{9, 77},
{10, 12}
};
现在,图表显示ok,大约有30个值,但当值超过100时,它就会失效

自动重新调整字典大小的最佳方法是什么?让我们假设在任何无限未来值中有一个给定的计数(30),比如说200

所以我会有一个函数AutoSizeMedicalary(值,30)//30是所需的限制 因此,它将返回一个值字典,如下所示:

public Dictionary<int, double> AutoSizeDictioanry(Dictionary<int, double> dict, int limit)
{
    // logic for resizing the dictionary        
   Dictionary<int, double> resized = new Dictionary<int, double>
                            {
                                {3, 45}, // this would be for example first 3 values with their average
                                {8, 33}, // this would be the following 5 values with their average 
                                {5, 22}, //etc
                            };
    return resized ;
}
public Dictionary autosizedictionary(Dictionary dict,int-limit)
{
//调整字典大小的逻辑
Dictionary resized=新字典
{
{3,45},//例如,这将是前3个值及其平均值
{8,33},//这将是以下5个值及其平均值
{5,22},//等
};
返回调整大小;
}
不确定我是否正确地处理了这个问题,但我试图实现的是从大量的值中很好地显示一个折线图


感谢您的帮助

尝试使用字典为您的图表功能提供支持,使用
Top(30)
进行过滤(使用LINQ扩展)。您的建议似乎是一种非常随机的数据采样方式,我认为结果不会很好地表示数据。如果我是你,我会找到更好的图表库,能够显示更多的数据点(100不是很多),你现在在用什么?另外,请注意:这可能是一个开始寻找最佳数据采样方法以减少点数的好地方。感谢您的链接。我正在使用highcharts javascript库来显示图表。它连接到后端以获取要显示的json数据。我遇到的问题是,当我得到100个项目时,它可以正常工作,但当我得到10000个项目时,图表需要显示大量数据,它可能无法很好地处理它。我找到了一种在后端对其进行采样的方法,并将很快发布解决方案。很快——在哪个时间尺度上?