顯示具有 Chart 標籤的文章。 顯示所有文章
顯示具有 Chart 標籤的文章。 顯示所有文章

2025年3月5日 星期三

[研究]ASP.NET, WebForm, Chart 長條圖測試(一)隱藏格線、顯示軸線

[研究]ASP.NET, WebForm, Chart 長條圖測試(一)隱藏格線、顯示軸線

2025-03-05

環境:Visual Studio 2019 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

把Chart拖入「設計」畫面,會註冊元件。

ASPX

<asp:Chart ID="Chart1" runat="server" Width="600px" Height="400px"
    BorderlineWidth="1" BorderlineColor="Black" BorderlineDashStyle="Solid">
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1">
            <AxisX Title="xxx" Interval="1" LineWidth="1" LineColor="Black">
                <MajorGrid Enabled="False" /> <!-- 隱藏 X 軸格線 -->
            </AxisX>
            <AxisY Title="yyy" LineWidth="1" LineColor="Black">
                <MajorGrid Enabled="False" /> <!-- 隱藏 Y 軸格線 -->
            </AxisY>
        </asp:ChartArea>
    </ChartAreas>
    <Series>
        <asp:Series Name="TotalLevelCountSeries" ChartType="Column" ChartArea="ChartArea1"
            IsValueShownAsLabel="true" LabelForeColor="Blue" Font="Arial, 14pt, style=Bold" />
    </Series>
</asp:Chart>



C#

Chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false; // 隱藏 X 軸格線
Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = false; // 隱藏 Y 軸格線

Chart1.ChartAreas["ChartArea1"].AxisX.LineWidth = 1; // 恢復 X 軸線條
Chart1.ChartAreas["ChartArea1"].AxisY.LineWidth = 1; // 恢復 Y 軸線條

Chart1.ChartAreas["ChartArea1"].AxisX.LineColor = System.Drawing.Color.Black; // 設定 X 軸顏色
Chart1.ChartAreas["ChartArea1"].AxisY.LineColor = System.Drawing.Color.Black; // 設定 Y 軸顏色


(完)

相關

2025年3月4日 星期二

[研究]ASP.NET, WebForm, Chart 雷達圖測試(三)多邊形、不填色、不顯示Y軸線

[研究]ASP.NET, WebForm, Chart 雷達圖測試(三)多邊形、不填色、不顯示Y軸線

2025-03-04

環境:Visual Studio 2019 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

把Chart拖入「設計」畫面,會註冊元件。

Default3.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default3.aspx.cs" Inherits="WebApplication1.Default3" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        
        <asp:Chart ID="Chart1" runat="server">
            <Titles>
                <asp:Title Text="雷達圖1" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
        
        <asp:Chart ID="Chart2" runat="server"
            Width="400px" Height="400px"
            BorderlineWidth="1" BorderlineColor="Black" BorderlineDashStyle="Solid" Palette="None">
            <%--雷達圖外框線、填色 BorderlineWidth="1" BorderlineColor="Black" BorderlineDashStyle="Solid" Palette="None" --%>
            <Titles>
                <asp:Title Text="雷達圖2" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                   <AxisY LineWidth="0">
                        <MajorTickMark LineWidth="0" /> <%--Y軸不要顯示主要刻度標記--%>
                        <%--AxisY 的 LineWidth 是圓心拉出的線,0表示不畫那條線 --%>
                        <%--AxisY 的 MajorGrid 是繞著圓心的主要線 (圓形線、多邊形線或其他) --%>
                        <%--AxisY 的 MinorGrid 是繞著圓心的主要線 (圓形線、多邊形線或其他) --%>
                        <MajorGrid Enabled="true" LineColor="Orange" />
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>
            <%--Series 是資料區域--%>
            <Series>
                <%--AreaDrawingStyle=Polygon 是把資料用多邊形線連起來
                BorderWidth="3" BorderColor="Blue" 表連起來的線是藍色、線粗 3 pixels
                Color="Transparent" 表示多邊形內部不填色
                IsValueShownAsLabel="true" 表示顯示資料數值
                LabelForeColor="Red" 表示顯示資料數值用紅色
                --%>
                <asp:Series Name="Series1" ChartType="Radar"
                    CustomProperties="AreaDrawingStyle=Polygon, DrawSideBySide=False"
                    BorderWidth="3" BorderColor="Blue" Color="Transparent"
                    IsValueShownAsLabel="true" LabelForeColor="Red" >
                </asp:Series>
            </Series>
        </asp:Chart>
    </form>
</body>
</html>


Default3.aspx.cs

using System;
using System.Web.UI.DataVisualization.Charting;

namespace WebApplication1
{
    public partial class Default3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GenerateRadarChart();
            }
        }
        private void GenerateRadarChart()
        {
            Series series = Chart1.Series["Series1"];
            series.Points.AddXY("A", 87);
            series.Points.AddXY("B", 62);
            series.Points.AddXY("C", 93);
            series.Points.AddXY("D", 54);
            series.Points.AddXY("E", 75);
            series.Points.AddXY("A", 87); // 雷達圖需要閉合

            Series series2 = Chart2.Series["Series1"];
            series2.Points.AddXY("A", 87);
            series2.Points.AddXY("B", 62);
            series2.Points.AddXY("C", 93);
            series2.Points.AddXY("D", 54);
            series2.Points.AddXY("E", 75);
            series2.Points.AddXY("A", 87); // 雷達圖需要閉合
        }
    }
}

下圖

********************************************************************************

增加一行 CODE,右上圖的字母旁黑短線 (主要刻度標記) 就可以消失

                   <AxisY LineWidth="0">
                        <MajorTickMark LineWidth="0" /> <%--Y軸不要顯示主要刻度標記--%>

下圖

********************************************************************************

補充:加大資料數值 (ASPX)

<Series>
        <asp:Series Name="Series1" IsValueShownAsLabel="True" />
    </Series>

改為

<Series>
        <asp:Series Name="Series1" IsValueShownAsLabel="True" Font="Arial, 14pt, style=Bold" />
    </Series>

或 (C#)

Chart1.Series["Series1"].IsValueShownAsLabel = true;
Chart1.Series["Series1"].Font = new System.Drawing.Font("Arial", 14, System.Drawing.FontStyle.Bold);



********************************************************************************

補充:資料點 (ASPX)

<asp:Chart ID="Chart1" runat="server" Width="600px" Height="400px">
    <Series>
        <asp:Series Name="Series1" 
            IsValueShownAsLabel="True" 
            MarkerStyle="Circle" 
            MarkerSize="8" 
            MarkerColor="Blue" />
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1" />
    </ChartAreas>
</asp:Chart>


或 (C#)

Chart1.Series["Series1"].IsValueShownAsLabel = true;

// 設定資料點標記為圓形
Chart1.Series["Series1"].MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Circle;
Chart1.Series["Series1"].MarkerSize = 8; // 調整圓形大小
Chart1.Series["Series1"].MarkerColor = System.Drawing.Color.Blue; // 設定圓形顏色



********************************************************************************

(完)

相關

[研究]ASP.NET, WebForm, Chart 雷達圖測試(二)

[研究]ASP.NET, WebForm, Chart 雷達圖測試(二)

2025-03-04

環境:Visual Studio 2019 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

把Chart拖入「設計」畫面,會註冊元件。

Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" 
    Inherits="WebApplication1.Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
       <asp:Panel ID="ChartPanel" runat="server"></asp:Panel>
    </form>
</body>
</html>

Default2.aspx.cs

using System;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadChart();
            }
        }
        private void LoadChart()
        {
            for (int i = 0; i <= 63; i++)
            {
                Chart chart = new Chart
                {
                    Width = 300,
                    Height = 300
                };

                Series series = new Series("Series" + i)
                {
                    ChartType = SeriesChartType.Radar,
                    BorderWidth = 2
                };
                series.Points.AddXY("A", 83);
                series.Points.AddXY("B", 64);
                series.Points.AddXY("C", 95);
                series.Points.AddXY("D", 76);
                series.Points.AddXY("E", 57);
                chart.Series.Add(series);

                ChartArea chartArea = new ChartArea("ChartArea" + i);
                if ((i & 0b100000) == 0)
                    chartArea.AxisX.MajorGrid.Enabled = false; // 隱藏 X 軸網格線
                else
                    chartArea.AxisX.MajorGrid.Enabled = true; // 隱藏 X 軸網格線

                if ((i & 0b010000) == 0)
                    chartArea.AxisY.MajorGrid.Enabled = false; // 隱藏 Y 軸網格線
                else
                    chartArea.AxisY.MajorGrid.Enabled = true; // 隱藏 Y 軸網格線

                if ((i & 0b001000) == 0)
                    chartArea.AxisY.MinorGrid.Enabled = false;
                else
                    chartArea.AxisY.MinorGrid.Enabled = true;

                if ((i & 0b000100) == 0)
                    chartArea.AxisX.MinorGrid.Enabled = false;
                else
                    chartArea.AxisX.MinorGrid.Enabled = true;

                if ((i & 0b000010) == 0)
                    chartArea.AxisX.LineWidth = 0; // 隱藏 X 軸線條
                else
                    chartArea.AxisX.LineWidth = 1; // 隱藏 X 軸線條

                if ((i & 0b000001) == 0)
                    chartArea.AxisY.LineWidth = 0; // 隱藏 Y 軸線條
                else
                    chartArea.AxisY.LineWidth = 1; // 隱藏 Y 軸線條

                chart.ChartAreas.Add(chartArea);
                Label labelA = new Label
                {
                    ID = "LabelA" + i
                };
                Label labelB = new Label
                {
                    ID = "LabelB" + i
                };
                Label labelC = new Label
                {
                    ID = "LabelC" + i
                };
                Label labelD = new Label
                {
                    ID = "LabelD" + i
                };
                Label labelE = new Label
                {
                    ID = "LabelE" + i
                };
                Label labelF = new Label
                {
                    ID = "LabelF" + i
                };
                labelA.Text = "<br />i=" +  i.ToString() + "<br />chartArea.AxisX.MajorGrid.Enabled = " 
                    + chartArea.AxisX.MajorGrid.Enabled.ToString() + "<br />";
                labelB.Text = "chartArea.AxisY.MajorGrid.Enabled = " + chartArea.AxisY.MajorGrid.Enabled.ToString() + "<br />";
                labelC.Text = "chartArea.AxisX.MinorGrid.Enabled = " + chartArea.AxisX.MinorGrid.Enabled.ToString() + "<br />";
                labelD.Text = "chartArea.AxisY.MinorGrid.Enabled = " + chartArea.AxisY.MinorGrid.Enabled.ToString() + "<br />";
                labelE.Text = "chartArea.AxisX.LineWidth = " + chartArea.AxisX.LineWidth.ToString() + "<br />";
                labelF.Text = "chartArea.AxisY.LineWidth = " + chartArea.AxisY.LineWidth.ToString() + "<br />";

                ChartPanel.Controls.Add(labelA);
                ChartPanel.Controls.Add(labelB);
                ChartPanel.Controls.Add(labelC);
                ChartPanel.Controls.Add(labelD);
                ChartPanel.Controls.Add(labelE);
                ChartPanel.Controls.Add(labelF);
                ChartPanel.Controls.Add(chart);
            }
        }
    }
}

下圖

下圖

下圖

下圖,看不出 AxisX.LineWidth = 1 的影響



********************************************************************************

(完)

相關

2025年3月3日 星期一

[研究]ASP.NET, WebForm, Chart 雷達圖測試(一)

[研究]ASP.NET, WebForm, Chart 雷達圖測試(一)

2025-03-03

環境:Visual Studio 2019 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

把Chart拖入「設計」畫面,會註冊元件。

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    Inherits="WebApplication1.Default" %>

<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Chart ID="Chart1" runat="server" Width="600px" Height="500px">
            <Titles>
                <asp:Title Text="雷達圖 - 只顯示線條" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" BorderColor="Blue" />
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                    <AxisX LineColor="Black">
                        <MajorGrid LineColor="Transparent" />
                    </AxisX>
                    <AxisY LineColor="Black">
                        <MajorGrid LineColor="Transparent" />
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>

        <asp:Chart ID="Chart2" runat="server" Width="600px" Height="500px">
            <Titles>
                <asp:Title Text="雷達圖2 - 只顯示線條" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" BorderColor="Blue" />
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                    <AxisX LineColor="Black">
                        <MajorGrid LineColor="Transparent" />
                    </AxisX>
                    <AxisY LineColor="Black">
                        <%--<MajorGrid LineColor="Transparent" />--%>
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>

        <asp:Chart ID="Chart3" runat="server" Width="600px" Height="500px">
            <Titles>
                <asp:Title Text="雷達圖3" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" BorderColor="Blue" />
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                    <AxisX LineColor="Black">
                        <%--<MajorGrid LineColor="Transparent" />--%>
                    </AxisX>
                    <AxisY LineColor="Black">
                        <MajorGrid LineColor="Transparent" />
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>

        <asp:Chart ID="Chart4" runat="server" Width="600px" Height="500px">
            <Titles>
                <asp:Title Text="雷達圖4" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" BorderColor="Blue" />
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                    <AxisX LineColor="Black">
                        <%--<MajorGrid LineColor="Transparent" />--%>
                    </AxisX>
                    <AxisY LineColor="Black">
                        <%--<MajorGrid LineColor="Transparent" />--%>
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>

        <asp:Chart ID="Chart5" runat="server" Width="600px" Height="600px"
            BorderlineWidth="1" BorderlineColor="Black" BorderlineDashStyle="Solid" Palette="None">
            <Titles>
                <asp:Title Text="雷達圖5" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" BackColor="Transparent">
                    <AxisX Interval="1">
                        <MajorGrid Enabled="False" />
                    </AxisX>
                    <AxisY Minimum="0" />
                </asp:ChartArea>
            </ChartAreas>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" Color="Blue"
                    BackGradientStyle="None" BackSecondaryColor="Transparent"
                    CustomProperties="AreaDrawingStyle=Polygon, DrawSideBySide=False"
                    IsValueShownAsLabel="true" LabelForeColor="Black" />
            </Series>
        </asp:Chart>

        <asp:Chart ID="Chart6" runat="server" Width="600px" Height="600px"
            BorderlineWidth="1" BorderlineColor="Black" BorderlineDashStyle="Solid" Palette="None">
            <Titles>
                <asp:Title Text="雷達圖6" Font="Arial, 14pt, style=Bold" />
            </Titles>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" BackColor="Transparent">
                    <AxisX Interval="1">
                        <MajorGrid Enabled="False" />
                    </AxisX>
                    <AxisY Minimum="0" />
                </asp:ChartArea>
            </ChartAreas>
            <Series>
                <asp:Series Name="Series1" ChartType="Radar" BorderWidth="2" BorderColor="Blue" Color="Transparent"
                    BackGradientStyle="None" BackSecondaryColor="Transparent"
                    CustomProperties="AreaDrawingStyle=Polygon, DrawSideBySide=False"
                    IsValueShownAsLabel="true" LabelForeColor="Black" />
            </Series>
        </asp:Chart>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using System.Drawing;
using System.Web.UI.DataVisualization.Charting;

namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GenerateRadarChart();
            }
        }

        private void GenerateRadarChart()
        {
            // 設定 Series
            Series series = Chart1.Series["Series1"];
            series.ChartType = SeriesChartType.Radar;
            series.BorderWidth = 2;
            series.BorderColor = Color.Blue; // 設定線條顏色
            series.Color = Color.Transparent; // 使填充透明
            series.BackSecondaryColor = Color.Transparent; // 確保不會有漸層顏色
            series.BackGradientStyle = GradientStyle.None; // 移除背景漸層
            series.IsValueShownAsLabel = true; // 顯示數值標籤

            // 加入資料點 (可根據需求修改)
            series.Points.AddXY("A", 87);
            series.Points.AddXY("B", 62);
            series.Points.AddXY("C", 93);
            series.Points.AddXY("D", 54);
            series.Points.AddXY("E", 75);
            series.Points.AddXY("A", 86); // 雷達圖需要閉合

            // 設定 ChartArea (移除網格線、設定軸線)
            ChartArea chartArea = Chart1.ChartAreas["ChartArea1"];
            //chartArea.AxisX.MajorGrid.LineColor = Color.Transparent; // 隱藏 X 軸網格線
            //chartArea.AxisY.MajorGrid.LineColor = Color.Transparent; // 隱藏 Y 軸網格線

            Series series2 = Chart2.Series["Series1"];
            // 加入資料點 (可根據需求修改)
            series2.Points.AddXY("A", 87);
            series2.Points.AddXY("B", 62);
            series2.Points.AddXY("C", 93);
            series2.Points.AddXY("D", 54);
            series2.Points.AddXY("E", 75);
            series2.Points.AddXY("A", 86); // 雷達圖需要閉合
            series2.Color = Color.Transparent; // 使填充透明

            Series series3 = Chart3.Series["Series1"];
            // 加入資料點 (可根據需求修改)
            series3.Points.AddXY("A", 87);
            series3.Points.AddXY("B", 62);
            series3.Points.AddXY("C", 93);
            series3.Points.AddXY("D", 54);
            series3.Points.AddXY("E", 75);
            series3.Points.AddXY("A", 86); // 雷達圖需要閉合

            Series series4 = Chart4.Series["Series1"];
            // 加入資料點 (可根據需求修改)
            series4.Points.AddXY("A", 87);
            series4.Points.AddXY("B", 62);
            series4.Points.AddXY("C", 93);
            series4.Points.AddXY("D", 54);
            series4.Points.AddXY("E", 75);
            series4.Points.AddXY("A", 86); // 雷達圖需要閉合

            Series series5 = Chart5.Series["Series1"];
            // 加入資料點 (可根據需求修改)
            series5.Points.AddXY("A", 87);
            series5.Points.AddXY("B", 62);
            series5.Points.AddXY("C", 93);
            series5.Points.AddXY("D", 54);
            series5.Points.AddXY("E", 75);
            series5.Points.AddXY("A", 86); // 雷達圖需要閉合

            Series series6 = Chart6.Series["Series1"];
            // 加入資料點 (可根據需求修改)
            series6.Points.AddXY("A", 87);
            series6.Points.AddXY("B", 62);
            series6.Points.AddXY("C", 93);
            series6.Points.AddXY("D", 54);
            series6.Points.AddXY("E", 75);
            series6.Points.AddXY("A", 86); // 雷達圖需要閉合
        }
    }
}

下圖



********************************************************************************

(完)

相關

2016年4月20日 星期三

[研究][C#][ASP.NET] Chart 繪圖控制項(Control)-長條圖、圓餅圖

[研究][C#][ASP.NET] Chart 繪圖控制項(Control)-長條圖、圓餅圖

2016-04-20
2020-12-02 更新

這是自己參考用的

不用去加入參考 (舊版才要),只要把 Chart 拖入設計畫面即可。


#VALX 會顯示X軸的標籤
#VALY 會顯示Y軸的值
#PERCENT{P1} 會把Y軸的值用百分比的方式表示


            for (int i = 1; i <= 3; i++)
            {
                // add a series to the chart
                string item = "SeriesLayer" + i.ToString();
                Chart1.Series.Add(item);
                Chart1.Series[item].ChartType = SeriesChartType.StackedColumn;
                //Chart1.Series[item].Label = "#ValY";
                //Chart1.Series[item].LegendText = "#ValY";
                Chart1.Series[item].IsValueShownAsLabel = true; 
                for (int a = 1; a <= 5; a++)
                {
                    // add 5 points to the current series 
                    Chart1.Series[item].Points.AddXY(a, 100.0);
                    //Chart1.Series[item].Label = "#VALY{$#.###}";
                    Chart1.Series[item].Label = "#VALY";
                }
            }

********************************************************************************
如果編譯出現錯誤
錯誤 CS0246 找不到類型或命名空間名稱 'Chart' (是否遺漏了 using 指示詞或組件參考?)

解決:
(下圖)在方案的「參考」按下滑鼠右鍵,選「加入參考」。

(下圖) 
( ASP.NET 網站) ASP.NET WebForm 請勾選 System.Web.DataVisualization
( NET 桌面應用程式) ASP.NET WinForm 請勾選 System.Windows.Forms.DataVisualization

( ASP.NET 網站) ASP.NET WebForm 加上
using System.Web.UI.DataVisualization.Charting;

( NET 桌面應用程式) ASP.NET WinForm
using System.Windows.Forms.DataVisualization.Charting;

Web.Config 要加上 ChartImageHandler

ASP.NET 有絕招: 使用 ASP.NET 和 LINQ 圖表 | Microsoft Docs

[ASP.NET] MS Chart簡易範例 | ShunNien 學習筆記 - 點部落


<appSettings>
<add key="ChartImageHandler" value="storage=session;timeout=20;" />
OR
<add key="ChartImageHandler" value="storage=memory;timeout=20;" />
OR
<add key="ChartImageHandler" value="storage=file;timeout=20;" />
OR
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=C:\TempImageFiles;" />
</appSettings>

********************************************************************************
2024-08-20補

Web.Config

<?xml version="1.0"?>
<!--
  如需如何設定 ASP.NET 應用程式的詳細資訊,請前往
  https://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.8">
      <assemblies>
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.8"/>
    <!-- 在整合式管線模式下,這裡不需要配置 httpHandlers -->
    <!--<httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
    </httpHandlers>-->
    <!-- 在整合式管線模式下,這裡不需要配置 httpHandlers -->
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
  <system.webServer>
    <handlers>
      <!-- 在整合式管線模式下配置處理常式 -->
      <add name="ChartImageHandler" path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
      <!-- 在整合式管線模式下配置處理常式 -->
    </handlers>
  </system.webServer>
</configuration>

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>

<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Chart ID="Chart1" runat="server">
            <Series>
                <asp:Series Name="Series1"></asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1"></asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
    </form>
</body>
</html>



Default.aspx.cs

using System;
using System.Web.UI.DataVisualization.Charting;

namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Chart1.Series["Series1"].Points.AddXY("January", 100);
            Chart1.Series["Series1"].Points.AddXY("February", 120);
            Chart1.Series["Series1"].Points.AddXY("March", 80);
            Chart1.Series["Series1"].Points.AddXY("April", 140);
        }
    }
}




Default.aspx.cs

using System;
using System.Web.UI.DataVisualization.Charting;

namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            for (int i = 1; i <= 3; i++)
            {
                // add a series to the chart
                string item = "SeriesLayer" + i.ToString();
                Chart1.Series.Add(item);
                Chart1.Series[item].ChartType = SeriesChartType.StackedColumn;
                //Chart1.Series[item].Label = "#ValY";
                //Chart1.Series[item].LegendText = "#ValY";
                Chart1.Series[item].IsValueShownAsLabel = true;
                for (int a = 1; a <= 5; a++)
                {
                    // add 5 points to the current series 
                    Chart1.Series[item].Points.AddXY(a, 100.0);
                    //Chart1.Series[item].Label = "#VALY{$#.###}";
                    Chart1.Series[item].Label = "#VALY";
                }
            }
        }
    }
}



(完)


相關