/// <summary> /// 解析を開始します。 /// </summary> /// <param name="analyzer"></param> public FormQ38(MorphologicalAnalyzer analyzer) { InitializeComponent(); IDictionary <string, List <Word> > result = analyzer.GetGroupByWord(); var resultByGroup = result.GroupBy(pair => pair.Value.Count); ChartArea chartArea = new ChartArea("base") { AxisX = { Title = "出現頻度" }, AxisY = { Title = "種類数" } }; Series series = new Series { ChartType = SeriesChartType.Bar, Name = "単語の頻出回数", ChartArea = chartArea.Name }; chart.Series.Clear(); chart.ChartAreas.Clear(); chart.ChartAreas.Add(chartArea); foreach (var item in resultByGroup) { series.Points.AddXY(item.Key, item.Count()); } chart.Series.Add(series); }
/// <summary> /// /// </summary> /// <param name="analyzer"></param> public FormQ39(MorphologicalAnalyzer analyzer) { InitializeComponent(); IDictionary <string, List <Word> > result = analyzer.GetGroupByWord(); ChartArea chartArea = new ChartArea("base") { AxisX = { Title = "単語頻出順位" }, AxisY = { Title = "頻出回数" } }; chartArea.AxisX.IsLogarithmic = true; chartArea.AxisY.IsLogarithmic = true; Series series = new Series { ChartType = SeriesChartType.Line, Name = "単語の頻出回数", ChartArea = chartArea.Name }; chart.Series.Clear(); chart.ChartAreas.Clear(); chart.ChartAreas.Add(chartArea); foreach (var item in result.OrderByDescending(pair => pair.Value.Count) .Select((value, index) => new { value, index })) { series.Points.AddXY(item.index + 1, item.value.Value.Count); } chart.Series.Add(series); }
/// <summary> /// /// </summary> /// <param name="analyzer"></param> public FormQ37(MorphologicalAnalyzer analyzer) { InitializeComponent(); IDictionary <string, List <Word> > result = analyzer.GetGroupByWord(); ChartArea chartArea = new ChartArea("base") { AxisX = { Title = "単語" }, AxisY = { Title = "頻出回数" } }; Series series = new Series { ChartType = SeriesChartType.Bar, Name = "単語の頻出回数", XValueType = ChartValueType.String, ChartArea = chartArea.Name }; chartArea.AxisX.MajorGrid.Interval = 1; chartArea.AxisX.LabelStyle = new LabelStyle { Interval = 1 }; chart.Series.Clear(); chart.ChartAreas.Clear(); chart.ChartAreas.Add(chartArea); foreach (var item in result.OrderByDescending(pair => pair.Value.Count).Take(10) .Select((value, index) => new { value, index })) { var first = item.value.Value.FirstOrDefault(); series.Points.AddXY(first.Base, item.value.Value.Count); } chart.Series.Add(series); }