پىروگرامما تۈزگەندە، دىئاگىرامما چىقىرىش ئادەمنىڭ كاللىسىنى ئاغرىتىدىغان بىر ئىش. Graphics ئۇسۇلى ئارقىلىق ھەر بىر سىزىقنى بىردىن بىردىن چىقىرىش مۇرەككەپ ھەم تەس بىر جەريان. ئاددىيسى كوردىنات بېكىتىشمۇ ئادەمنى چارچىتىپ قويىدۇ. ئەلۋەتتە ئالاھىدە دىئاگىرامما ۋە گىرافىكلارنى چىقىرىش توغرا كەلگەندە بۇ بىردىن-بىر ئامال. ئەمما ئادەتتىكى تۈرۈكلۈك، سىزىقلىق ياكى سىكتورلۇق دىئاگىراممىلارنى چىقىرىشتا بۇنىڭدىن قۇلايلىق ۋە ئاسان باشقا ئۇسۇللارمۇ بار.
VB6 دەۋرىدە MSChart كونتىرولى بار بولۇپ، Excelنىڭ يادروسى ئارقىلىق ئادەتتىكى دىئاگىراممىلارنى چىقارغىلى بولاتتى. لىكىن يەنىلا ئاۋارىچىلىقى كۆپ ئىدى. تاكى NET Framework4.0(VB.NET 2010)غا كەلگەندە، مەخسۇس دىئاگىرامما ئىشلەيدىغان Chart كونتىرولى قېتىلدى. بۇ كونتىرولنى ئىشلىتىش قۇلايلىق ۋە ئاسان. بۈگۈن بىز بۇ كونتىرولنى ئادەتتىكى بىر پىروگرامما ئارقىلىق كۆرۈپ چىقايلى.
بىز تۈردىن NET4.0نىڭ يۇقىرىسىدىكى مۇھىتتا تۈردىن بىرنى قۇرساق، كونتىرول قاتارىدا «Chart» دېگەن نامدا بىر كونتىرولنى كۆرىمىز.
بۇنى كۆزنەككە تارتىپ ئەكىرسەك چوڭ-كىچىكلىكىنى تەڭشىگىلى بولىدىغان، سۈكۈتتە تۈرۈكلۈك دىئاگىرامما شەكىلدە كونتىرول كىرىدۇ.
بۇ كونتىرول ئىچكى قىسىمدا بىر قانچە قەۋەتكە بۆلۈنگەن، يەنە بىر Chart كونتىرولى بىر قانچە ChartAreaنى ئۆز ئىچىگە ئالغان بولىدۇ. ھەر بىر ChartArea ماس ھالدا بىر دىئاگىراممىغا تەڭ. بىر ChartArea يەنە بىر قانچە Seriesدىن تەركىپ تاپىدۇ. ھېسابتا ئۇچۇر قاتارىنى كۆرسىتىدۇ. تۆۋەندە بىز تۈۋرۈكلۈك دىئاگىراممىنىڭ رەسىمى ئارقىلىق بۇ مۇناسىۋەتنى كۆرۈپ باقايلى.
ئۈستىدىكى رەسىمدىكى ھەممە قىسىمنى تەڭشىگىلى بولىدىغان بولۇپ، پەقەت بۇلارنىڭ مۇناسىۋىتىنى ئايدىڭلاشتۇرىۋالغاندا تەڭشەشتىن بەك قىيلىنىپ كەتمەيسىز. تۆۋەندە بىز ئالاقىدار كودلىرىنى كۆرۈپ ئۆتەيلى:
- 'VB.NET
- Chart1.ChartAreas.Clear()
- 'يېڭىدىن ChartArea ئېنىقلاش
- Dim ChartAreas1 As New DataVisualization.Charting.ChartArea("Area1")
- 'ChartAreaنىڭ X ئوقىنىڭ تېمىسىنى بېكىتىش
- ChartAreas1.AxisX.Title = "دەرس نامى"
- 'ChartAreaنىڭ Y ئوقىنىڭ تېمىسىنى بېكىتىش
- ChartAreas1.AxisY.Title = "نەتىجىسى"
- 'ChartAreaنىڭ X ئوقىنىڭ تېمىسىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisX.TitleFont = New Font("ALKATIP Tor", 15, GraphicsUnit.Pixel)
- 'ChartAreaنىڭ X ئوقىدىكى قىمەتلەرنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisX.LabelStyle.Font = New Font("ALKATIP Tor", 13, GraphicsUnit.Pixel)
- 'ChartAreaنىڭ Y ئوقىنىڭ تېمىسىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisY.TitleFont = New Font("ALKATIP Tor", 15, GraphicsUnit.Pixel)
- 'ئېنىقلانغان ChartAreaنى Chart1غا قوشۇش
- Chart1.ChartAreas.Add(ChartAreas1)
- Chart1.Series.Clear()
- 'يېڭىدىن Series ئېنىقلاش
- Dim Series1 As New DataVisualization.Charting.Series("Series1")
- 'Series نىڭ ئىزاھاتىنى بەلگىلەش
- Series1.LegendText = "ئىمتاھان نەتىجىسى"
- 'Series نىڭ تىپىنى تاللاش--تۈۋرۈكلۈك، سىزىقلىق، سىكتورلۇق...
- Series1.ChartType = DataVisualization.Charting.SeriesChartType.Column
- 'قىىمىتىنى ئۈستىدە كۆرسىتىش
- Series1.IsValueShownAsLabel = True
- 'ئېنىقلانغان Seriesنى Chart1غا قوشۇش
- Chart1.Series.Add(Series1)
- 'ئىزاھاتلارنىڭ خەت نۇسخۇسىنى ئۆزگەرتىش
- Chart1.Legends(0).Font = New Font("ALKATIP Tor", 13, GraphicsUnit.Pixel)
- 'ئىزاھاتلارنىڭ ئورنىنى بەلگىلەش
- Chart1.Legends(0).Docking = DataVisualization.Charting.Docking.Top
- 'Chart1غا يېڭىدىن تېما قوشۇش
- Chart1.Titles.Add("Title1")
- 'تېمىنىڭ تېكىستىنى بەلگىلەش
- Chart1.Titles(0).Text = "ئوقۇغۇچىلارنىڭ نەتىجە دىئاگراممىسى"
- 'تېمىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- Chart1.Titles(0).Font = New Font("ALKATIP Tor", 15, GraphicsUnit.Pixel)
- 'مەلۇمات ئۇچۇرىنى ئوقۇش
- Dim Dt As New DataTable()
- Dt.Columns.Add("دەرس")
- Dt.Columns.Add("نەتىجە")
- Dt.Rows.Add({"ئەدەبىيات", 95})
- Dt.Rows.Add({"ماتىماتىكا", 85})
- Dt.Rows.Add({"تەنتەربىيە", 98})
- Dt.Rows.Add({"رەسىم", 88})
- Dt.Rows.Add({"خەنزۇتىلى", 93})
- 'مەلۇمات ئۇچۇرىنى دىئاگراممىغا بېرىش
- '1-ئۇسۇل-------------------------------------------------------
- 'For i = 0 To Dt.Rows.Count - 1
- ' Chart1.Series("Series1").Points.AddXY(Dt.Rows(i)("دەرس").ToString, Dt.Rows(i)("نەتىجە"))
- 'Next
- '---------------------------------------------------------------
- '2-ئۇسۇل-------------------------------------------------------
- Chart1.DataSource = Dt
- Chart1.Series(0).XValueMember = "دەرس"
- Chart1.Series(0).YValueMembers = "نەتىجە"
- Chart1.DataBind()
- '---------------------------------------------------------------
مەزمۇننى كۆچۈرۈۋېلىش- //C#
- Chart1.ChartAreas.Clear();
- //يېڭىدىن ChartArea ئېنىقلاش
- System.Windows.Forms.DataVisualization.Charting.ChartArea ChartAreas1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea("Area1");
- //ChartAreaنىڭ X ئوقىنىڭ تېمىسىنى بېكىتىش
- ChartAreas1.AxisX.Title = "دەرس نامى";
- //ChartAreaنىڭ Y ئوقىنىڭ تېمىسىنى بېكىتىش
- ChartAreas1.AxisY.Title = "نەتىجىسى";
- //ChartAreaنىڭ X ئوقىنىڭ تېمىسىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisX.TitleFont = new Font("ALKATIP Tor", 15, GraphicsUnit.Pixel);
- //ChartAreaنىڭ X ئوقىدىكى قىمەتلەرنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisX.LabelStyle.Font = new Font("ALKATIP Tor", 13, GraphicsUnit.Pixel);
- //ChartAreaنىڭ Y ئوقىنىڭ تېمىسىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- ChartAreas1.AxisY.TitleFont = new Font("ALKATIP Tor", 15, GraphicsUnit.Pixel);
- //ئېنىقلانغان ChartAreaنى Chart1غا قوشۇش
- Chart1.ChartAreas.Add(ChartAreas1);
- Chart1.Series.Clear();
- //يېڭىدىن Series ئېنىقلاش
- System.Windows.Forms.DataVisualization.Charting.Series Series1 = new System.Windows.Forms.DataVisualization.Charting.Series("Series1");
- //Series نىڭ ئىزاھاتىنى بەلگىلەش
- Series1.LegendText = "ئىمتاھان نەتىجىسى";
- //Series نىڭ تىپىنى تاللاش--تۈۋرۈكلۈك، سىزىقلىق، سىكتورلۇق...
- Series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
- //قىىمىتىنى ئۈستىدە كۆرسىتىش
- Series1.IsValueShownAsLabel = true;
- //ئېنىقلانغان Seriesنى Chart1غا قوشۇش
- Chart1.Series.Add(Series1);
- //ئىزاھاتلارنىڭ خەت نۇسخۇسىنى ئۆزگەرتىش
- Chart1.Legends[0].Font = new Font("ALKATIP Tor", 13, GraphicsUnit.Pixel);
- //ئىزاھاتلارنىڭ ئورنىنى بەلگىلەش
- Chart1.Legends[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
- //Chart1غا يېڭىدىن تېما قوشۇش
- Chart1.Titles.Add("Title1");
- //تېمىنىڭ تېكىستىنى بەلگىلەش
- Chart1.Titles[0].Text = "ئوقۇغۇچىلارنىڭ نەتىجە دىئاگراممىسى";
- //تېمىنىڭ خەت نۇسخۇسىنى بەلگىلەش
- Chart1.Titles[0].Font = new Font("ALKATIP Tor", 15, GraphicsUnit.Pixel);
- //مەلۇمات ئۇچۇرىنى ئوقۇش
- DataTable Dt = new DataTable();
- Dt.Columns.Add("دەرس");
- Dt.Columns.Add("نەتىجە");
- Dt.Rows.Add(new object[] { "ئەدەبىيات", 95 });
- Dt.Rows.Add(new object[] { "ماتىماتىكا",85});
- Dt.Rows.Add(new object[] { "تەنتەربىيە",98});
- Dt.Rows.Add(new object[] { "رەسىم",88});
- Dt.Rows.Add(new object[] { "خەنزۇتىلى",93});
- //مەلۇمات ئۇچۇرىنى دىئاگراممىغا بېرىش
- //1-ئۇسۇل-------------------------------------------------------
- //for (int i = 0; i <= Dt.Rows.Count - 1; i++)
- //{
- // Chart1.Series["Series1"].Points.AddXY(Dt.Rows[i]["دەرس"].ToString(), Dt.Rows[i]["نەتىجە"]);
- //}
- //---------------------------------------------------------------
- //2-ئۇسۇل-------------------------------------------------------
- Chart1.DataSource = Dt;
- Chart1.Series[0].XValueMember = "دەرس";
- Chart1.Series[0].YValueMembers = "نەتىجە";
- Chart1.DataBind();
- //---------------------------------------------------------------
مەزمۇننى كۆچۈرۈۋېلىش
ئەمدى كود ئۈنۈمىنى كۆرۈپ باقايلى:
كۆرۈپ ئۆتكىنىمىزدەك، بۇ كونتىرول ئارقىلىق دىئاگرامما چىقىرىش ئاسان ھەم ئاددىي. تۆۋەندە بىز چىقارغان دىئاگىراممىنى ساقلاشنى كۆرۈپ باقايلى. Chart ئوبىكتى ئىچىدە SaveImage دېگەن نامدا بىر ئۇسۇل بار بولۇپ، دىئاگىراممىنى بىۋاستە رەسىم فورماتىدا(BMP, JPG, PNG, TIF) چىقىرىپ بېرىدۇ. تېخىدىنمۇ ياخشى بولغىنى بىۋاستە EMF فورماتىدىكى ۋىكتورلۇق رەسىم ھالىتىدىمۇ چىقىرىۋالغىلى بولىدۇ. بۇنداق بولغاندا كىيىنكى كۈنلەردە رەسىمنى چوڭايتسام سۇسلىشىپ كىتەرمۇ دەپمۇ ئولتۇرمايسىز. كودى قانداق دەمسىز؟ ناھايىتى ئاددى:
- 'VB.NET
- Chart1.SaveImage("C:\chart.png", DataVisualization.Charting.ChartImageFormat.Png)
- //C#
- Chart1.SaveImage(@"C:\chart.png", System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
مەزمۇننى كۆچۈرۈۋېلىش
قېنى سىزمۇ سىناپ بېقىڭ.
پىروگىراممىغا قىزىقىدىغانلار ئاستىدىكى چىپار كود(ئىككىلىك كود)نى سايىلەپ ياكى «شەرەر»، «xarar_09» دەپ ئىزدىتىپ شەرەر سالونىنى قىتىۋالساڭلار بولىدۇ.
مەنبە: شەرەر تورى |