簡體   English   中英

控制日期數據圖表上的X軸標記c#

[英]Controlling X-Axis Marks on Date Data Charts c#

我在數據庫中有記錄,在圖表中可以預覽它們。 該圖是數據x電壓(伏)。

當表中的記錄很少時,該圖會准確地顯示X軸上銀行中記錄的日期,但是隨着時間的推移,我會添加更多的記錄,該圖會增大並停止標記所有日期記錄,其中電壓發生了變化。

我正在畫一張圖表的圖片:

在此處輸入圖片說明

該圖表從我的銀行中提取了50條不同時間和電壓值的條目。

我想要一種改進並能夠更好地控制X軸點的方法,例如使它們每10分鍾出現一次。

下面是生成圖形的代碼:

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringSQL"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT Log.ValorEntrada, Log.DataHoraEvento, Log.NumeroEntrada FROM Log INNER JOIN Equipamento ON Log.IDEquipamento = Equipamento.IDEquipamento INNER JOIN EntradaEstado ON Equipamento.IDEquipamento = EntradaEstado.IDEquipamento INNER JOIN Entrada ON EntradaEstado.IDEntrada = Entrada.IDEntrada WHERE Log.NumeroEntrada = N'" + descricao.SelectedItem.Value + "' AND Log.ValorEntrada IS NOT NULL AND DATEDIFF(day, Log.DataHoraEvento, GETDATE()) = 1 AND EntradaEstado.IDEquipamento = N'" + equip.Text + "' AND Entrada.Descricao = N'" + descricao.SelectedItem.Text + "' ORDER BY DataHoraEvento ASC");
    cmd.Connection = con;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);

    if (dt.Rows.Count > 0)
    {
        Chart2.DataSource = dt;

        if (descricao.SelectedItem.Text == "Corrente da bomba de graxa")
        {
            Chart2.ChartAreas["ChartArea1"].AxisY.Title = "Corrente (A)";
        }
        else
        {

            Chart2.ChartAreas["ChartArea1"].AxisY.Title = "Tensão (V)";
        }

        Title title = Chart2.Titles.Add("Gráfico do dia: " + DateTime.Now.AddDays(-1).ToString("dd/MM/yyyy"));
        title.ForeColor = System.Drawing.Color.DarkBlue;
        title.Font = new System.Drawing.Font("Arial", 12, System.Drawing.FontStyle.Bold);




        Chart2.ChartAreas["ChartArea1"].AxisX.Title = "Hora";
        Chart2.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "HH:mm:ss";
        Chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = System.Drawing.Color.DarkGray;
        Chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
        Chart2.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = System.Drawing.Color.DarkGray;
        Chart2.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot;


        Chart2.Series["Series1"].XValueType = ChartValueType.DateTime;
        Chart2.Series["Series1"].BorderWidth = 2;
        Chart2.Series["Series1"].XValueMember = "DataHoraEvento";
        Chart2.Series["Series1"].YValueMembers = "ValorEntrada";
        Chart2.Series["Series1"].IsXValueIndexed = true;

        Chart2.Width = 1200;
        Chart2.Height = 400;

        Chart2.DataBind();
        con.Close();

您是否嘗試過更改X軸上的標簽樣式?

有很多選擇,也許像

Chart2.ChartAreas["ChartArea1"].AxisX.IsLabelAutoFit = false;
Chart2.ChartAreas["ChartArea1"].AxisX.LabelStyle = new LabelStyle() { IntervalType = DateTimeIntervalType.Minutes, Interval = 10, Format = "HH:mm:ss"};

可以為您指明正確的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM