最常出现的单词图表

时间:2018-06-09 13:11:09

标签: c# charts

有一个最常出现的4个单词的代码

  string words = "One one Two two three four".ToLower();

  var results = words
    .Split(' ')
    .Where(x => x.Length > 3)
    .GroupBy(x => x)
    .Select(x => new { 
       Count = x.Count(), 
       Word = x.Key })
    .OrderByDescending(x => x.Count)
    .Take(3);

 foreach (var item in results)
 {
    MessageBox.Show(String.Join("\n", results.Select(x => String.Format("{0} --- {1} ", x.Word, x.Count)));
 }

enter image description here

如何制作像这样的词语频率图表

enter image description here

我知道如何制作图表,但我不知道如何将其连接到我的代码

this.chart1.Series["Series1"].Points.AddXY("one", 2);
this.chart1.Series["Series1"].Points.AddXY("two", 2);
this.chart1.Series["Series1"].Points.AddXY("three", 1);
this.chart1.Series["Series1"].Points.AddXY("four", 1);

1 个答案:

答案 0 :(得分:2)

就像这样:

foreach (var  r in results )
{
    chart1.Series["Series1"].Points.AddXY(r.Word, r.Count);
}

稍微更改数据后:

string words = "One one Two two three four four four two two two five five".ToLower();

我们得到了这个:

enter image description here

请注意,这是将字符串作为x值的情况。这意味着DataPoints中的实际x值不是那些字符串(它们是double) 但都是0

这有各种各样的含义。

一个是你不能轻易地添加另一个系列,其中的点显示其他值,但依赖于相同的x值。您也不能使用(丢失)值来设置最小值/最大值或格式化标签..

通常可以通过调用Chart.AlignDataPointsByAxisLabel来使其他系列具有相同的x值但可能以不同的顺序运行。