【问题标题】:ASP.Net C# - Set and display x axis values in ChartASP.Net C# - 在图表中设置和显示 x 轴值
【发布时间】:2014-08-22 13:27:51
【问题描述】:

我有一个绘制折线图的函数,如下所示。数据点是从 MySQL 表中获取的。但是,如何将 x 轴上的每个数据点编号为 1,2,3,4...?

在下面的示例中,查询返回两个结果,并且图形显示两个点,因此图形应在轴上标记 1 和 2。

编辑:初始问题已解决。但是,对于上面的示例,有 2 个数据点,但最大 x 值为 3。有没有办法将最大 x 值设置为等于数据点的数量?

protected void chart(int moduleID)
{
    string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
    MySqlConnection conn = new MySqlConnection(connStr);

    string comm = "SELECT * FROM scores WHERE test_id=0 AND module_id=@ModuleID AND user_id=@UserID";
    MySqlCommand mySqlCommand = new MySqlCommand(comm, conn);
    mySqlCommand.Parameters.Add(new MySqlParameter("@ModuleID", moduleID));
    mySqlCommand.Parameters.Add(new MySqlParameter("@UserID", Session["UserID"]));

    MySqlDataAdapter dataAdapter = new MySqlDataAdapter(mySqlCommand);
    DataTable ds = new DataTable();

    Chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
    Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = false;
    Chart1.ChartAreas["ChartArea1"].AxisX.Minimum = 1;
    Chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Enabled = false;
    Chart1.ChartAreas["ChartArea1"].AxisX.Title = "attempt no.";
    Chart1.ChartAreas["ChartArea1"].AxisY.Minimum = 0;
    Chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 100;
    Chart1.ChartAreas["ChartArea1"].AxisY.Title = "%";
    Chart1.ChartAreas["ChartArea1"].AxisY.TextOrientation = TextOrientation.Horizontal;

    try
    {
        conn.Open();
        dataAdapter.Fill(ds);

        if (ds.Rows.Count > 0)
        {
            Chart1.DataSource = ds;
            Chart1.Series["Series1"].YValueMembers = "score";
            Chart1.DataBind();
        }
        else
        {
            Chart1.Visible = false;
            lblError2.Text = "No results found.";
        }
    }
    catch
    {
        lblError.Text = "Database connection error. Unable to obtain data at the moment.";
    }
    finally
    {
        conn.Close();
    }
}

【问题讨论】:

    标签: c# mysql asp.net mschart linegraph


    【解决方案1】:

    有问题:

    Chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Enabled = false;
    

    您已禁用 AxisX 标签

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.labelstyle.enabled%28v=vs.110%29.aspx

    【讨论】:

    • 啊,太好了,谢谢。对于上面的示例,有 2 个数据点,但最大 x 值为 3。有没有办法将最大 x 值设置为等于数据点的数量?
    • 如果您设置AxisX.Maximum = Double.NaN;,它将自动缩放。您也可以将其设置为特定值。要找到您的最大值,您可以使用AxisX.Maximum = Chart1.Series["Series1"].Points.FindMaxByValue("X").XValue;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多