柚子快報(bào)激活碼778899分享:C# Chart圖表應(yīng)用
柚子快報(bào)激活碼778899分享:C# Chart圖表應(yīng)用
1,Chart簡介
????????Chart控件是微軟自帶的一種圖形可視化組件,使用簡單靈活。在.NET4.0之后(即VS2010之后)已集成在了VS里面,直接拖拽控件到窗體即可使用。 需要使用命名空間:using System.Windows.Forms.DataVisualization.Charting(拖拽控件時(shí)自動添加)。
??????? 一個(gè) Chart 可繪制多個(gè) ChartArea,每個(gè) ChartArea 可繪制多條 Series。ChartArea 是繪圖區(qū)域,一個(gè)Chart可以由多個(gè) ChartArea 疊加而成,Series 是畫在 ChartAarea 上的圖形(例如折線圖中的折線),Series 英文意思是“序列、連續(xù)”,其實(shí)就是數(shù)據(jù)線,它可以是曲線、點(diǎn)、柱形、條形、餅圖...。
????????當(dāng) Chart 當(dāng)數(shù)據(jù)非常多的時(shí)候可以通過鼠標(biāo)選擇查看區(qū)域,進(jìn)一步拖拽橫縱向滾動條來縮小曲線圖查看,關(guān)聯(lián)屬性是Chart.ChartArea.Axes.XAxis.ScaleView中的
1.1分布圖。
1.2,多個(gè)ChartArea,多個(gè)Series 的Chart示例
Chart中有單個(gè)ChartArea,每個(gè)ChartArea有1個(gè)Series:
Chart中有單個(gè)ChartArea,每個(gè)ChartArea有多個(gè)Series:
Chart中有多個(gè)ChartArea,每個(gè)ChartArea有1個(gè)Series:
Chart中有多個(gè)ChartArea,每個(gè)ChartArea有多個(gè)Series:
2,屬性介紹。
2.1,ChartAreas:獲取用于存儲 ChartArea 對象的只讀 ChartAreaCollection 對象。?
ChartAreaCollection 類:表示 ChartArea 對象的集合。
Count:獲取 Collection
AxisX:獲取或設(shè)置表示主 X 軸的 Axis 對象。AxisY:獲取或設(shè)置表示主 Y 軸的 Axis 對象。BackColor:獲取或設(shè)置 ChartArea 對象的背景色。BackGradientStyle:獲取或設(shè)置圖表區(qū)域的背景漸變方向,還確定是否使用漸變。ShadowColor:獲取或設(shè)置 ChartArea 對象的陰影顏色。ShadowOffset:獲取或設(shè)置 ChartArea 對象的陰影偏移量(以像素為單位)。Axis 類:提供管理 Chart 控件中的軸的方法和屬性。
MajorGrid:獲取或設(shè)置用于設(shè)置軸的主要網(wǎng)格線屬性的 Grid 對象。Title:獲取或設(shè)置軸的標(biāo)題。ArrowStyle:獲取或設(shè)置二維軸的箭頭樣式;此樣式不適用于三維圖表區(qū)域。Interval:獲取或設(shè)置軸的間隔。(坐標(biāo)軸數(shù)據(jù)間隔)IntervalOffset:獲取或設(shè)置軸的間隔偏移量。(坐標(biāo)軸第一個(gè)數(shù)據(jù)距離原點(diǎn)的間隔)Maximum:獲取或設(shè)置軸的最大值。Minimum:獲取或設(shè)置軸的最小值。Grid 類:提供用于管理 Axis 對象的主要和次要網(wǎng)格的方法和屬性。
Interval:獲取或設(shè)置主要網(wǎng)格線或次要網(wǎng)格線之間的間隔。(相鄰兩個(gè)網(wǎng)格線間的間隔,int)IntervalType:獲取或設(shè)置主要網(wǎng)格線或次要網(wǎng)格線的間隔類型。(計(jì)算單位)IntervalOffset:獲取或設(shè)置網(wǎng)格線的偏移量。(第一個(gè)網(wǎng)格線偏移坐標(biāo)軸的間隔,int)IntervalOffsetType:獲取或設(shè)置主要網(wǎng)格線和次要網(wǎng)格線的間隔偏移量類型。(計(jì)算單位)LineColor:獲取或設(shè)置網(wǎng)格線顏色。LineDashStyle:獲取或設(shè)置網(wǎng)格的線型。LineWidth:獲取或設(shè)置主要網(wǎng)格線和次要網(wǎng)格線的線條寬度。
Chart1.ChartAreas[“ChartArea1”].Name = “圖表區(qū)域”;
//設(shè)置是否自動設(shè)置合適的圖表元素
Chart1.ChartAreas[“圖表區(qū)域”].Position.Auto = true;
//設(shè)置圖表的陰影顏色
Chart1.ChartAreas[“圖表區(qū)域”].ShadowColor = System.Drawing.Color.YellowGreen;
//設(shè)置圖表元素左上角對應(yīng)的X坐標(biāo)
Chart1.ChartAreas[“圖表區(qū)域”].Position.X=5.089137F;
//設(shè)置圖表元素左上角對應(yīng)的Y坐標(biāo)
Chart1.ChartAreas[“圖表區(qū)域”].Position.Y = 5.895753F;
//設(shè)置圖表元素的高度
Chart1.ChartAreas[“圖表區(qū)域”].Position.Height = 86.76062F;
//設(shè)置圖表元素的寬度
Chart1.ChartAreas[“圖表區(qū)域”].Position.Width = 88F;
//設(shè)置是否在內(nèi)部繪圖區(qū)域中自動設(shè)置合適的圖表元素
Chart1.ChartAreas[“圖表區(qū)域”].InnerPlotPosition.Auto = false;
//設(shè)置圖表元素內(nèi)部繪圖區(qū)域的高度
Chart1.ChartAreas[“圖表區(qū)域”].InnerPlotPosition.Height = 85F;
//設(shè)置圖表元素內(nèi)部繪圖區(qū)域的寬度
Chart1.ChartAreas[“圖表區(qū)域”].InnerPlotPosition.Width = 86F;
//設(shè)置圖表元素內(nèi)部繪圖區(qū)域左上角對應(yīng)的X坐標(biāo)
Chart1.ChartAreas[“圖表區(qū)域”].InnerPlotPosition.X = 8.3969F;
//設(shè)置圖表元素內(nèi)部繪圖區(qū)域左上角對應(yīng)的Y坐標(biāo)
Chart1.ChartAreas[“圖表區(qū)域”].InnerPlotPosition.Y = 3.63068F;
//設(shè)置三維圖表的旋轉(zhuǎn)角度
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.Inclination = 10;
//設(shè)置條形圖或柱形圖的的數(shù)據(jù)系列是否為簇狀
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.IsClustered = true;
//設(shè)置圖表區(qū)域是否使用等角投影顯示
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.IsRightAngleAxes = true;
//設(shè)置圖表的照明類型(色調(diào)隨旋轉(zhuǎn)角度改變而改變,不應(yīng)用照明,色調(diào)不改變)
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.LightStyle ==System.Web.UI.DataVisualization.Charting.LightStyle.Realistic;
//設(shè)置三維圖區(qū)的透視百分比
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.Perspective = 50;
//設(shè)置三維圖表區(qū)域繞垂直軸旋轉(zhuǎn)的角度
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.Rotation = 60;
//設(shè)置三維圖區(qū)中顯示的墻的寬度
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.WallWidth = 0;
//設(shè)置是否顯示3D效果
Chart1.ChartAreas[“圖表區(qū)域”].Area3DStyle.Enable3D = true;
//設(shè)置圖表區(qū)域的背景顏色
Chart1.ChartAreas[“圖表區(qū)域”].BackColor = System.Drawing.Color.Green;
//指定圖表元素的漸變樣式(中心向外,從左到右,從上到下等等)
Chart1.ChartAreas[“圖表區(qū)域”].BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.LeftRight;
//設(shè)置圖表區(qū)域的輔助顏色
Chart1.ChartAreas[“圖表區(qū)域”].BackSecondaryColor = System.Drawing.Color.White;
//設(shè)置圖表區(qū)域邊框顏色
Chart1.ChartAreas[“圖表區(qū)域”].BorderColor = System.Drawing.Color.White;
//設(shè)置圖像邊框線的樣式(實(shí)線、虛線、點(diǎn)線)
Chart1.ChartAreas[“圖表區(qū)域”].BorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
//設(shè)置X軸下方的提示信息的字體屬性
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.LabelStyle.Font = new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);
//設(shè)置標(biāo)簽文本中的格式字符串
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.LabelStyle.Format = “”;
//設(shè)置標(biāo)簽間隔的大小
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.LabelStyle.Interval=5D;
//設(shè)置間隔大小的度量單位
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.LabelStyle.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;
//設(shè)置X軸的線條顏色
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.LineColor = System.Drawing.Color.White;
//設(shè)置主網(wǎng)格線與次要網(wǎng)格線的間隔
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.MajorGrid.Interval=5D;
//設(shè)置主網(wǎng)格線與次網(wǎng)格線的間隔的度量單位
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.MajorGrid.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;
//設(shè)置網(wǎng)格線的顏色
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.MajorGrid.LineColor = System.Drawing.Color.Snow;
//設(shè)置刻度線的間隔
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.MajorTickMark.Interval = 5D;
//設(shè)置刻度線的間隔的度量單位
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.MajorTickMark.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;
//設(shè)置是否自動調(diào)整軸標(biāo)簽
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.IsLabelAutoFit = false;
//設(shè)置是否自動將數(shù)據(jù)值均為正值時(shí)軸的最小值設(shè)置為0,存在負(fù)數(shù)據(jù)值時(shí),將使用數(shù)據(jù)軸最小值
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.IsStartedFromZero = false;
//設(shè)置Y軸左側(cè)的提示信息的字體屬性
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.LabelStyle.Font = new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);
//設(shè)置軸的線條顏色
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.LineColor = System.Drawing.Color.DarkBlue;
//設(shè)置網(wǎng)格線顏色
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.MajorGrid.LineColor = System.Drawing.Color.White;
//設(shè)置Y軸最大值
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.Maximum = getmax() + 100;
//設(shè)置Y軸最小值
Chart1.ChartAreas[“圖表區(qū)域”].AxisY.Minimum=0;
//軸數(shù)據(jù)視圖,查看位置
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.ScaleView.Position=1;
//軸數(shù)據(jù)視圖,查看大?。Q定圖表中顯示X軸坐標(biāo)數(shù)量)
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.ScaleView.Size=4;
//軸滾動條設(shè)置
Chart1.ChartAreas[“圖表區(qū)域”].AxisX.ScrollBar;
?2.2,Series:獲取 SeriesCollection 對象。?
SeriesCollection 類:表示 Series 對象的集合。
Count:獲取 Collection
ChartType:獲取或設(shè)置序列的圖表類型。
SeriesChartType 枚舉:指定 Series 的圖表類型。
Area:面積圖類型。Line:折線圖類型。Spline:樣條圖類型。(光滑曲線)Column:柱形圖類型。Pie:餅圖類型。Doughnut:圓環(huán)圖類型。XValueType:獲取或設(shè)置沿 X 軸繪制的值類型。YValueType:獲取或設(shè)置序列所存儲的數(shù)據(jù)點(diǎn)中的 Y 值數(shù)據(jù)類型。
ChartValueType 枚舉:指定各種圖表屬性的值類型。
Auto:屬性類型由圖表控件自動設(shè)置。Int32:Int32 值。DateTime:一個(gè) DateTime 值。Time:[DateTime] 值的時(shí)間部分。IsValueShownAsLabel:獲取或設(shè)置一個(gè)標(biāo)志,該標(biāo)志指示是否在標(biāo)簽上顯示數(shù)據(jù)點(diǎn)的值。Points:獲取 DataPointCollection 對象。(數(shù)據(jù)表中的數(shù)據(jù)點(diǎn))
DataPointCollection 類:表示 DataPoint 對象的集合。
Count:獲取 Collection
//第一步:將 X 軸數(shù)值類型設(shè)置為 Time
chart1.Series[0].XValueType = ChartValueType.Time;
//第二步:將 DateTime 數(shù)據(jù)轉(zhuǎn)為 double 類型
DateTime dt = DateTime.Parse("2020/8/8 15:18:01");
double d = Double.Parse(dtzh.Rows[i]["Fo"].ToString());
chart1.Series[0].Points.AddXY(dt.ToOADate(), d); DataPoint 類:表示存儲在 DataPointCollection 類中的數(shù)據(jù)點(diǎn)。
XValue:獲取或設(shè)置數(shù)據(jù)點(diǎn)的 X 值。YValues:獲取或設(shè)置數(shù)據(jù)點(diǎn)的 Y 值。(數(shù)組的形式,值一般是[0])Color:獲取或設(shè)置數(shù)據(jù)點(diǎn)的顏色。BorderColor:獲取或設(shè)置數(shù)據(jù)點(diǎn)的邊框顏色。Clear:從 Collection
MarkerStyle 枚舉:獲取或設(shè)置標(biāo)記樣式。
MarkerStyle 枚舉:指定標(biāo)記的樣式。None:不為序列或數(shù)據(jù)點(diǎn)顯示任何標(biāo)記。Square:顯示正方形標(biāo)記。Circle:顯示圓形標(biāo)記。Diamond:顯示菱形標(biāo)記。Triangle:顯示三角形標(biāo)記。Cross:顯示十字形標(biāo)記。MarkerColor:獲取或設(shè)置標(biāo)記顏色。(數(shù)據(jù)點(diǎn))MarkerSize:獲取或設(shè)置標(biāo)記的大小。MarkerBorderColor:獲取或設(shè)置標(biāo)記的邊框顏色。MarkerBorderWidth:獲取或設(shè)置標(biāo)記的邊框?qū)挾取??Color:獲取或設(shè)置數(shù)據(jù)點(diǎn)的顏色。(數(shù)據(jù)點(diǎn)和連接的線)BorderWidth:獲取或設(shè)置數(shù)據(jù)點(diǎn)的邊框?qū)挾取orderDashStyle:獲取或設(shè)置數(shù)據(jù)點(diǎn)的邊框樣式。BorderColor:獲取或設(shè)置數(shù)據(jù)點(diǎn)的邊框顏色。EmptyPointStyle:獲取或設(shè)置標(biāo)記為空的點(diǎn)的繪制樣式。 ?LabelBackColor:獲取或設(shè)置數(shù)據(jù)點(diǎn)標(biāo)簽的背景色。LabelBorderColor:獲取或設(shè)置數(shù)據(jù)點(diǎn)標(biāo)簽的邊框顏色。LabelBorderDashStyle:獲取或設(shè)置標(biāo)簽的邊框樣式。LabelBorderWidth:獲取或設(shè)置標(biāo)簽的邊框?qū)挾取??IsVisibleInLegend:獲取或設(shè)置一個(gè)標(biāo)志,該標(biāo)志指示是否在圖例中顯示項(xiàng)。LegendText:獲取或設(shè)置圖例中項(xiàng)的文本。
//X軸的數(shù)據(jù)源
Chart1.Series[“Series1”].XValueMember = “name”;
//Y軸的數(shù)據(jù)源
Chart1.Series[“Series1”].YValueMembers = “mobile”;
//設(shè)置顏色
Chart1.Series[“Series1”].Color = System.Drawing.Color.Red;
//圖表類型
Chart1.Series[“Series2”].ChartType=System.Web.UI.DataVisualization.Charting.SeriesChartType.Line;
//是否在Chart中顯示坐標(biāo)點(diǎn)值
Chart1.Series[“Series1”].IsValueShownAsLabel = true;
//數(shù)據(jù)邊框顏色
Chart1.Series[“Series1”].BorderColor = System.Drawing.Color.Red;
// 圖表背景顏色
Chart1.BackColor = System.Drawing.Color.Red;
//數(shù)據(jù)顏色
Chart1.Series[“Series1”].Color = System.Drawing.Color.Black;
//數(shù)據(jù)名稱
Chart1.Series[“Series1”].Name = “數(shù)據(jù)1”;
//陰影偏移量
Chart1.Series[“數(shù)據(jù)1”].ShadowOffset = 1;
//陰影顏色:
Chart1.Series[“數(shù)據(jù)1”].ShadowColor = System.Drawing.Color.PaleGreen;
?2.3,Titles:存儲 Chart 控件使用的所有 Title 對象。?
TitleCollection 類:表示 Title 對象的集合。
Count:獲取 Collection
Alignment:獲取或設(shè)置標(biāo)題的對齊方式。BackColor:獲取或設(shè)置標(biāo)題的背景色。Font:獲取或設(shè)置標(biāo)題的字體。ForeColor:獲取或設(shè)置標(biāo)題文本的顏色。ShadowColor:獲取或設(shè)置標(biāo)題的陰影顏色。ShadowOffset:獲取或設(shè)置標(biāo)題的陰影偏移量(以像素為單位)。Position:獲取或設(shè)置可用于獲取或設(shè)置標(biāo)題位置的 ElementPosition 對象。Text:獲取或設(shè)置標(biāo)題的文本。TextOrientation:獲取或設(shè)置標(biāo)題中文本的方向。TextStyle:獲取或設(shè)置標(biāo)題的文本樣式。
?2.4,Legends:存儲 Chart 控件使用的所有 Legend 對象。?
LegendCollection 類:表示 Legend 對象的集合。
Count:獲取 Collection
Alignment:獲取或設(shè)置圖例的對齊方式。
StringAlignment 枚舉:指定文本字符串相對于其布局矩形的對齊方式。
Near:如果圖例停靠到頂部或底部,則 Near 位于左側(cè);如果圖例??康阶髠?cè)或右側(cè),則 Near 位于頂部。Center:總是將圖例垂直或水平居中。Far:如果圖例停靠到頂部或底部,則 Far 位于右側(cè);如果圖例??康阶髠?cè)或右側(cè),則 Far 位于底部。Title:獲取或設(shè)置圖例標(biāo)題的文本。ShadowColor:獲取或設(shè)置圖例的陰影顏色。ShadowOffset:獲取或設(shè)置圖例的陰影偏移量(以像素為單位)。
// 圖表的對齊方式(中間對齊,靠近原點(diǎn)對齊,遠(yuǎn)離原點(diǎn)對齊)
legend1.Alignment = System.Drawing.StringAlignment.Near;
//圖例的背景顏色
legend1.BackColor = System.Drawing.Color.Black;
//圖例要??吭谀膫€(gè)區(qū)域上
legend1.DockedToChartArea = “ChartArea1”;//設(shè)置圖例要停靠在哪個(gè)區(qū)域上
//??吭趫D表區(qū)域的位置(底部、頂部、左側(cè)、右側(cè))
legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom;
//圖例的字體屬性
legend1.Font =new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);
//圖例文本是否可以自動調(diào)節(jié)大小
legend1.IsTextAutoFit = true;
//圖例項(xiàng)方式(多列一行、一列多行、多列多行)
legend1.LegendStyle = System.Windows.Forms.DataVisualization.Charting.LegendStyle.Column;
//圖例的名稱
legend1.Name = “l(fā)1”;
Chart1.Legends.Add(legend1.Name);
2.5,Chart外觀屬性
//Chart漸變樣式
Chart1.BackGradientStyle=System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
//Chart背景色
Chart1.BackColor = System.Drawing.Color.Yellow;
//Chart背景輔助顏色
Chart1.BackSecondaryColor = System.Drawing.Color.Yellow;
//Chart圖像邊框顏色
Chart1.BorderlineColor = System.Drawing.Color.Yellow;
//Chart邊框線樣式
Chart1.BorderlineDashStyle=System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
//Chart邊框?qū)挾?/p>
Chart1.BorderlineWidth = 3;
//Chart邊框外觀樣式:
Chart1.BorderSkin.SkinStyle=System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss;
2.6,圖形顯示區(qū)域。
3,應(yīng)用。
3.1, 通過代碼設(shè)置屬性。
?
1. 在工具箱中找到 Chart 控件并使用
ChartArea1屬性設(shè)置///
//設(shè)置網(wǎng)格的樣式
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.LightGray;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.LightGray;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.IntervalOffset = 1;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.IntervalOffset = 0;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 2;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 10;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.DashDot;
//設(shè)置坐標(biāo)軸樣式
chart1.ChartAreas["ChartArea1"].AxisX.Title = "隨機(jī)數(shù)";
chart1.ChartAreas["ChartArea1"].AxisY.Title = "數(shù)值";
chart1.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines;
chart1.ChartAreas[0].AxisY.IntervalOffset = 10;
chart1.ChartAreas[0].AxisY.Interval = 20;
chart1.ChartAreas[0].AxisY.Minimum = -10;
//啟用3D顯示
chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
//設(shè)置圖表背景
chart1.ChartAreas[0].BackColor = Color.FromArgb(0x87, 0xCC, 0xFF, 0xFF);
chart1.ChartAreas[0].BackGradientStyle = GradientStyle.TopBottom;
chart1.ChartAreas[0].ShadowColor = Color.Gainsboro;
chart1.ChartAreas[0].ShadowOffset = 5;
//Series屬性設(shè)置///
//設(shè)置顯示類型-線型
chart1.Series["隨機(jī)數(shù)"].ChartType = SeriesChartType.Spline;
//設(shè)置坐標(biāo)軸Value顯示類型
chart1.Series["隨機(jī)數(shù)"].XValueType = ChartValueType.Int32;
//是否顯示標(biāo)簽的數(shù)值
chart1.Series["隨機(jī)數(shù)"].IsValueShownAsLabel = true;
//設(shè)置標(biāo)記圖案
chart1.Series["隨機(jī)數(shù)"].MarkerStyle = MarkerStyle.Circle;
chart1.Series["隨機(jī)數(shù)"].MarkerSize = 8;
chart1.Series["隨機(jī)數(shù)"].MarkerColor = Color.FromArgb(0x99, 0xFF, 0x00);
chart1.Series["隨機(jī)數(shù)"].MarkerBorderColor = Color.Green;
chart1.Series["隨機(jī)數(shù)"].MarkerBorderWidth = 2;
//設(shè)置圖案顏色
chart1.Series["隨機(jī)數(shù)"].Color = Color.Green;
//設(shè)置圖案的寬度
chart1.Series["隨機(jī)數(shù)"].BorderWidth = 2;
chart1.Series[0].BorderDashStyle = ChartDashStyle.Dash;
chart1.Series[0].BorderColor = Color.Red;
chart1.Series[0].LabelAngle = 45;
chart1.Series[0].LabelBackColor = Color.Aqua;
chart1.Series[0].LabelBorderColor = Color.Black;
//添加隨機(jī)數(shù)
Random rd = new Random();
for (int i = 1; i < 20; i++)
{
//chart1.Series["隨機(jī)數(shù)"].Points.AddXY(i, rd.Next(100));
chart1.Series["隨機(jī)數(shù)"].Points.AddY(rd.Next(100));
}
for (int i = 0; i < chart1.Series[0].Points.Count; i++)
{
if (chart1.Series[0].Points[i].YValues[0] >= 67.0)
chart1.Series[0].Points[i].MarkerBorderColor = Color.DeepPink;
else if(chart1.Series[0].Points[i].YValues[0] >= 33.3)
chart1.Series[0].Points[i].MarkerBorderColor = Color.DarkOrange;
else
chart1.Series[0].Points[i].MarkerBorderColor = Color.Gray;
}
3.2,實(shí)例應(yīng)用。
class SuperChart
{
Chart curChart;
public SuperChart(Chart chart)
{
curChart = chart;
//設(shè)置Y軸網(wǎng)格不可見
curChart.ChartAreas["ChartArea1"].Axes[1].MajorGrid.Enabled = false;
//設(shè)置X軸網(wǎng)格不可見
curChart.ChartAreas["ChartArea1"].Axes[0].MajorGrid.Enabled = false;
}
public void ShowChart(SeriesChartType chartype, List
{
//清除所有的圖表序列
curChart.Series.Clear();
//創(chuàng)建一個(gè)圖表序列(一個(gè)圖表中可以創(chuàng)建多個(gè)圖表序列)
Series series01 = new Series();
series01.Name = "Chart";
//設(shè)置圖表序列類型
series01.ChartType = chartype;
//將圖表序列添加到圖表中
curChart.Series.Add(series01);
//設(shè)置圖標(biāo)序列的列
for (int i = 0; i < datas.Count; i++)
{
double value = datas[i].Value;
string text = datas[i].Text;
series01.Points.AddXY(text, value);
//設(shè)置鼠標(biāo)停留在列上的提示
series01.LabelToolTip = value.ToString();//停留在標(biāo)簽上時(shí)的自動提示
series01.ToolTip = value.ToString();//停留在列圖像上的提示
//根據(jù)不同的Chart類型設(shè)置顯示格式
if(chartype== SeriesChartType.Pie)
{
//設(shè)置標(biāo)簽顯示的格式
//格式1:"#AXISLABEL(#VAL)";//設(shè)置顯示X軸內(nèi)容+value
//格式2:"#AXISLABEL(#PERCENT)"http://X軸+百分比
//格式3:"#AXISLABEL(#VAL)(#PERCENT)"http://X軸+value+百分比
series01.Points[i].Label = "#AXISLABEL(#VAL)(#PERCENT)";//設(shè)置顯示X軸內(nèi)容+value
//標(biāo)簽顯示位置:Outside:外側(cè),Inside:內(nèi)側(cè)(默認(rèn)值)
series01["PieLabelStyle"] = "Outside";
//標(biāo)簽連接線顏色
series01["PieLineColor"]="Black";
}
else if(chartype== SeriesChartType.Doughnut)
{
series01.Points[i].Label = "#AXISLABEL (#PERCENT)";
series01["PieLabelStyle"] = "Inside";
}
else
{
series01.Points[i].Label = "(#PERCENT)";
}
if(chartype!= SeriesChartType.Pie)
{
series01.Points[i].AxisLabel = $"{text} {value}";
}
}
//設(shè)置圖標(biāo)坐標(biāo)系X和Y的坐標(biāo)值
curChart.ChartAreas[0].AxisY.Interval = 10;
curChart.ChartAreas[0].AxisX.Interval = 1;
}
}
class ChartData
{
///
/// 圖表文本
///
public string Text { get; set; }
public double Value { get; set; }
}
public partial class Form1 : Form
{
SuperChart super;
List
public Form1()
{
InitializeComponent();
super = new SuperChart(chart1);
Random random = new Random();
list = new List
{
new ChartData { Text="武漢", Value=random.Next(100) },
new ChartData { Text="天津", Value=random.Next(100) },
new ChartData { Text="北京", Value=random.Next(100) },
new ChartData { Text="廣州", Value=random.Next(100) },
new ChartData { Text="上海", Value=random.Next(100) }
};
}
private void btnPie_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Pie, list);
}
private void btnColumn_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Column, list);
}
private void btnLine_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Line, list);
}
private void btnBar_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Bar, list);
}
private void btnDoughnut_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Doughnut, list);
}
private void btnSpline_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.Spline, list);
}
private void btnSplineArea_Click(object sender, EventArgs e)
{
super.ShowChart(SeriesChartType.SplineArea, list);
}
}
3.3,效果:
示例2:
public ChartFrm()
{
InitializeComponent();
pnlMenu.AutoScroll = true;
cmb_TrendType.SelectedIndex = 0;
//設(shè)置chart背景色
chart1.BackColor = Color.LightCyan;
chart1.BackSecondaryColor = Color.LightGreen;
chart1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
// 設(shè)置chart 網(wǎng)格屬性
chart1.ChartAreas[0].AxisX.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Seconds;
chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;
chart1.ChartAreas[0].AxisX.ArrowStyle = System.Windows.Forms.DataVisualization.Charting.AxisArrowStyle.Triangle;
chart1.ChartAreas[0].AxisY.ArrowStyle = System.Windows.Forms.DataVisualization.Charting.AxisArrowStyle.Triangle;
chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash;
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.LightGray;
chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.LightGray;
//坐標(biāo)標(biāo)簽類型設(shè)置
chart1.Series[0].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Time;
//坐標(biāo)標(biāo)簽旋轉(zhuǎn)角度
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 30;
//坐標(biāo)標(biāo)簽顯示格式
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
//標(biāo)簽出現(xiàn)的間隔
chart1.ChartAreas[0].AxisX.Interval = 1;
chart1.ChartAreas[0].AxisX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Seconds;
//設(shè)置軸的title
chart1.ChartAreas[0].AxisX.Title = "時(shí)間";
//設(shè)置繪圖模式
chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
//設(shè)置繪圖的mark
chart1.Series[0].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
chart1.Series[0].MarkerSize = 10;
//設(shè)置繪圖顯示標(biāo)簽值
chart1.Series[0].IsValueShownAsLabel = true;
// 設(shè)置連接線的顏色
chart1.Series[0].Color = Color.Brown;
// 設(shè)置圖例名
chart1.Series[0].LegendText = "水壓";
//繪圖區(qū)域大小禁止自動變化,否則每次自動更新時(shí)區(qū)域大小將變化
//chart1.ChartAreas[0].Position.Auto = false;//需要設(shè)置高度,寬度等參數(shù),不設(shè)置將不能顯示繪圖
//chart1.ChartAreas[0].InnerPlotPosition.Auto = false;//需要設(shè)置高度,寬度等參數(shù),不設(shè)置將不能顯示繪圖
//設(shè)置定時(shí)器屬性
timer.Interval = 1000;
timer.Tick += Timer_Tick;
// timer.Elapsed += Timer_Tick;
timer.Start();
}
Random random = new Random();
int num = 0;
private void Timer_Tick(object sender, EventArgs e)
{
if (list.Count < 15)
{
list.Add(new Single { CurDataTime =DateTime.Parse( DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")), Value = Math.Round(random.NextDouble() * 120, 2) });
// chart1.Series[0].Points.AddXY(DateTime.Now.ToOADate(), Math.Round(random.NextDouble() * 100, 2));
}
else
{
list.RemoveAt(0);
list.Add(new Single { CurDataTime = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")), Value = Math.Round(random.NextDouble() * 120, 2) });
// chart1.Series[0].Points.RemoveAt(0);
//chart1.Series[0].Points.AddXY(DateTime.Now.ToOADate(), Math.Round(random.NextDouble() * 100, 2));
}
chart1.Series[0].XValueMember = "CurDataTime";
chart1.Series[0].YValueMembers = "Value";
// chart1.ChartAreas[0].AxisX.Minimum = 0;
this.Invoke(new Action(() =>
{
chart1.DataSource = list;
chart1.DataBind();
}
));
}
示例2效果
柚子快報(bào)激活碼778899分享:C# Chart圖表應(yīng)用
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。