public RippleLineChartText()
        {
            _chartConfig   = CreateNewChartConfig();
            _showOnlyGraph = false;

            _xAxis  = (TimeAxis)_chartConfig.Options.Scales.XAxes.First();
            _yAxis1 = (LinearCartesianAxis)_chartConfig.Options.Scales.YAxes[0];
            _yAxis2 = (LinearCartesianAxis)_chartConfig.Options.Scales.YAxes[1];
        }
示例#2
0
        public void UpdateChart()
        {
            this.Config.Options.Title.Text = $"Zmienna lingwistyczna {this.parent_variable.Name}: {this.parent_variable.Description}";
            LinearCartesianAxis lca = this.Config.Options.Scales.xAxes[0] as LinearCartesianAxis;

            lca.Ticks.Min = this.parent_variable.Minimum.Value;
            lca.Ticks.Max = this.parent_variable.Maximum.Value;

            this.Config.Data.Datasets.Clear();

            string[] colors = new[] { "blue", "red", "green", "black", "magenta", "cyan", "brown", "yellow" };
            int      icolor = 0;

            foreach (FuzzyValue fval in this.parent_variable.Values)
            {
                LineDataset <Point> data_set = new LineDataset <Point>
                {
                    Label          = fval.Name,
                    LineTension    = 0,
                    PointRadius    = 2,
                    BorderColor    = colors[icolor++ % colors.Length],
                    PointHitRadius = 10,
                    BorderWidth    = 3,
                };

                if (fval.MembershipType == MembershipFunctionFamily.Trapezoidal)
                {
                    NamedParameter sl = fval.GetParameter("SuppL");
                    NamedParameter kl = fval.GetParameter("KernL");
                    NamedParameter kr = fval.GetParameter("KernR");
                    NamedParameter sr = fval.GetParameter("SuppR");

                    data_set.Add(new Point(this.parent_variable.Minimum.Value, 0));
                    data_set.Add(new Point(sl.Value, 0));
                    data_set.Add(new Point(kl.Value, 1));
                    data_set.Add(new Point(kr.Value, 1));
                    data_set.Add(new Point(sr.Value, 0));
                    data_set.Add(new Point(this.parent_variable.Maximum.Value, 0));

                    this.Config.Data.Datasets.Add(data_set);
                }
            }
        }