来自数组或列表的 MS Charts C# 数据源

2024-02-21

我想从二维数组中的值填充图表的数据,一列将显示 X 轴,第二列将显示 Y 轴。我做到了,但它不是从数组中读取,它给出当我运行应用程序时,我使用默认行,我找到了使用 List 的解决方案,我遇到了错误,所以如果有人可以帮助我,我将不胜感激:D

这是代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ICS381Project
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int[,] AndFunction = { { 0, 0, 0 }, { 0, 1, 0 }, { 1, 0, 0 }, { 1, 1, 1 } }; // intialized the function
            int[,] D_n = new int[4, 1]; // creating the D(n)
            int[,] x_n = new int[4, 3]; // creating X(n) vectors X1 --> x4
            int[,] W_n = { { 0, 0, 0 } }; // creating and intiallizing W(n) vectors W1 --> w4
            int[,] W_n_1 = { { 0, 0, 0 } };
            int[,] Delta_W_n = { { 0, 0, 0 } };
            int wx = 0; // 
            int Y_n = 0; //
            int d_y = 0; // 
            for (int i = 0; i < 4; i++)
            {
                D_n[i, 0] = AndFunction[i, 2];
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (j == 2)
                        x_n[i, j] = 1;
                    else
                        x_n[i, j] = AndFunction[i, j];
                }
            }
            int step = 0;
            int CheckIfNoLearning = 0;
            int RowsPointer = 0;
            while (CheckIfNoLearning < 4)
            {

                //Console.Write("step= " + step+1 + "\n");
                wx = (x_n[RowsPointer, 0] * W_n[0, 0]) + (x_n[RowsPointer, 1] * W_n[0, 1]) + (x_n[RowsPointer, 2] * W_n[0, 2]);
                //Console.Write("[ " + x_n[RowsPointer, 0] + ", " + x_n[RowsPointer, 1] + ", " + x_n[RowsPointer, 2] + "] \t");
                //Console.Write("[ " + W_n[0, 0] + ", " + W_n[0, 1] + ", " + W_n[0, 2] + "] \t");
                //Console.Write("" + wx + "\t");
                if (wx < 0)
                    Y_n = 0;
                else
                    Y_n = 1;
               // Console.Write("" + Y_n + "\t");
                d_y = D_n[RowsPointer, 0] - Y_n;
               // Console.Write("" + d_y + "\t");
                Delta_W_n[0, 0] = d_y * x_n[RowsPointer, 0];
                Delta_W_n[0, 1] = d_y * x_n[RowsPointer, 1];
                Delta_W_n[0, 2] = d_y * x_n[RowsPointer, 2];
               // Console.Write("[ " + Delta_W_n[0, 0] + ", " + Delta_W_n[0, 1] + ", " + Delta_W_n[0, 2] + "] \t");
                for (int i = 0; i < 3; i++)
                {
                    W_n_1[0, i] = W_n[0, i] + Delta_W_n[0, i];
                }
                //Console.Write("[ " + W_n_1[0, 0] + ", " + W_n_1[0, 1] + ", " + W_n_1[0, 2] + "] \n");

                if (W_n_1[0, 0] == W_n[0, 0] && W_n_1[0, 1] == W_n[0, 1] && W_n_1[0, 2] == W_n[0, 2] && CheckIfNoLearning == RowsPointer)
                    CheckIfNoLearning++;
                else
                    CheckIfNoLearning = 0;
                W_n[0, 0] = W_n_1[0, 0];
                W_n[0, 1] = W_n_1[0, 1];
                W_n[0, 2] = W_n_1[0, 2];
                //Console.Write("W_n= [ " + W_n[0, 0] + ", " + W_n[0, 1] + ", " + W_n[0, 2] + "] \n");
                RowsPointer = (RowsPointer + 1) % 4;
                step++;
            }

            double[,] equation = {{-10,0},{-9,0},{-8,0},
                              {-7,0},{-6,0},{-5,0},
                              {-4,0},{-3,0},{-2,0},
                              {-1,0},{0,0},{1,0},
                              {2,0},{3,0},{4,0},
                              {5,0},{6,0},{7,0},
                              {8,0},{9,0},{10,0}};
            List<XY> xy = new List<XY>();
            for (int i = 0; i < 21; i++)
            {
                equation[i, 1] = (-1 * (W_n_1[0, 1] * equation[i, 0] + W_n_1[0, 2])) / W_n_1[0, 0];
                xy.Add(new XY(equation[i,0], equation[i,1]));
            }

            chart1.DataSource = xy;
            chart1.Series[0].XValueMember = "Y";
            chart1.Series[0].YValueMembers = "X";
            chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
            chart1.DataBind();





        }
    }
    public class XY
    {
        private double X;
        private double Y;

        public double DayOfWeek
        {
            get { return X; }
            set { X = value; }
        }

        public double Sales
        {
            get { return Y; }
            set { Y = value; }
        }
        public XY(double X, double Y)
        {
            this.X = X;
            this.Y = Y;
        }
    }
}

在您的 XY 类中,而不是私有字段:

  private double X;
  private double Y;

使用公共属性:

 public double X { get; private set; }
 public double Y { get; private set; }

数据绑定不适用于字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自数组或列表的 MS Charts C# 数据源 的相关文章

  • 分段错误(核心转储)错误

    我的程序编译罚款 但在输入文件时出现 分段错误 核心转储 错误 我没有正确处理 ostream 吗 include
  • Subversion 和 Visual Studio 项目的最佳实践

    我最近开始在 Visual Studio 中处理各种 C 项目 作为大型系统计划的一部分 该系统将用于替换我们当前的系统 该系统是由用 C 和 Perl 编写的各种程序和脚本拼凑而成的 我现在正在进行的项目已经达到了颠覆的临界点 我想知道什
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 为什么大多数平台上没有“aligned_realloc”?

    MSVC有自己的非标准函数 aligned malloc aligned realloc and aligned free C 17和C11引入了 std aligned alloc 其结果可以是de分配有free or realloc B
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • C++ 插件的“最适合”动态类型匹配

    我有一个几乎所有东西都是插件的架构 该架构以图形用户界面为基础 其中每个插件都由一个 表面 即用户可以通过其与插件交互的 UI 控件 表示 这些表面也是插件 每当添加新插件时 瘦主机都会自动确定哪个可用表面与其最匹配的 UI 如何在 C 中
  • tabcontrol selectedindex 更改事件未被触发 C#

    嘿伙计们 我有一个很小的问题 请参阅下面的代码 this is main load private void Form1 Load object sender EventArgs e tabAddRemoveOperator Selecte
  • 二叉树中的 BFS

    我正在尝试编写二叉树中广度优先搜索的代码 我已将所有数据存储在队列中 但我不知道如何访问所有节点并消耗它们的所有子节点 这是我的 C 代码 void breadthFirstSearch btree bt queue q if bt NUL
  • asp.net网格分页的SQL查询

    我在用iBatis and SQLServer 使用偏移量和限制进行分页查询的最佳方法是什么 也许我添加该列ROW NUMBER OVER ORDER BY Id AS RowNum 但这只会阻止简单查询的数据访问 在某些情况下 我使用选择
  • 为什么要在 C++ 中使用 typedef?

    可以说我有 set
  • WPF。如何从另一个窗口隐藏/显示主窗口

    我有两个窗口 MainWindow 和 Login 显示登录的按钮位于主窗口 this Hide Login li new Login li Show 登录窗口上有一个检查密码的按钮 如果密码正确 我如何显示主窗口 将参数传递给 MainW
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过

随机推荐