Таблица наиболее часто встречающихся слов - PullRequest
0 голосов
/ 09 июня 2018

Существует код для 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 голосов
/ 09 июня 2018

Просто так:

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.Это означает, что фактические значения x в точках DataPoints не являются этими строками (они double), а являются 0.

, что имеет все виды последствий.

Один из нихчто вы не можете легко добавить другой ряд с точками, которые показывают другие значения, но полагаются на те же значения x.Также вы не можете использовать (потерянные) значения, чтобы установить минимальные / максимальные значения или метки форматирования.

Иногда для работы могут использоваться дополнительные серии с такими же значениями x, но, возможно, в другом порядке.по телефону Chart.AlignDataPointsByAxisLabel ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...