NEWS

[DEVEXPRESS] Hướng dẫn vẽ biểu đồ Pareto sử dụng công cụ Chart Control trong VB.NET

[DEVEXPRESS] Hướng dẫn vẽ biểu đồ Pareto sử dụng công cụ Chart Control trong VB.NET
Đăng bởi: Thảo Meo - Lượt xem: 16355 18:46:52, 22/11/2016C#   In bài viết

Hôm nay, mình xin tiếp tục hướng dẫn các bạn cách vẽ biểu đồ Pareto trong công cụ Chart control của Devexpress.

Vậy biểu đồ Pareto là biểu đồ gì?

Biểu đồ pareto là dạng biểu đồ trực quan, biểu diễn các nguyên nhân của một vấn đề được sắp xếp theo mức độ giảm dần.

1.    Biểu đồ Pareto là gì?

Biểu đồ pareto là dạng biểu đồ trực quan, biểu diễn các nguyên nhân của một vấn đề được sắp xếp theo mức độ giảm dần. Căn cứ vào đó, chúng ta tập trung giải quyết các vấn đề, các nguyên nhân ảnh hưởng lớn nhất. Do đó biểu đồ pareto giúp giải quyết vấn đề hiệu quả. Chuẩn bị nguồn lực thích hợp.

Biểu đồ này được Pareto – nhà kinh tế người Ý đưa ra đầu tiên, sau đó đã được Joseph Juran – một nhà chất lượng người Mỹ - áp dụng vào những năm 1950. Nguyên tắc Pareto dựa trên quy tắc “80 – 20”, có nghĩa là 80% ảnh hưởng của vấn đề do 20% các nguyên nhân chủ yếu.

Biểu đồ Pareto được xây dựng trên excel theo trình tự các bước sau đây.

  • Xác lập các lỗi sai hỏng;
  • Thu thập dữ liệu cho từng nguyên nhân phát sinh qua đó xác định được lỗi sai hỏng có tính anh hưởng lớn nhất,
  • Lựa chọn những lỗi sai hỏng có sức ảnh hưởng lớn nhất đối với vấn đề cần giải quyết và sắp xếp các lỗi sai hỏng đó theo mức độ giảm dần.
  • Tính tần suất tích lũy cho các lỗi sai hỏng cần biểu diễn
  • Tính tỷ lệ % cho từng lỗi sai hỏng dựa trên tần suất tích lũy;
  • Tính tỷ lệ % tích lũy cho các lỗi sai hỏng. Tổng % nguyên nhân tích lũy là 100%.
  • Vẽ các cột thể hiện từng lỗi sai hỏng. Bề rộng các cột bằng nhau; Giữa các cột không được có khoảng trống.
  • Viết tiêu đề nội dung và ghi tóm tắt các đặc trưng của số liệu được vẽ trên đồ thị;
  • Phân tích biểu đồ: Những cột cao hơn thể hiện sai hỏng xảy ra nhiều nhất, cần được ưu tiên giải quyết. Những cột này tương ứng với đoạn đường cong có tần suất tích lũy tăng nhanh nhất (hay có độ dốc lớn nhất). Những cột thấp hơn (thường là đa số) đại diện cho những sai hỏng ít quan trọng hơn tương ứng với đoạn đường cong có tần suất tích lũy tăng ít hơn (hay có tốc độ nhỏ hơn).

2. Tại sao Biểu đồ Pareto có ý nghĩa?
Biểu đồ Pareto có ý nghĩa bởi nó biểu thị mục tiêu và sự hiểu biết rõ ràng về vấn đề mà bạn cần tập trung ưu tiên giải quyết. Nó giúp bạn tối ưu hóa việc giải quyết vấn đề chính xác, hiệu quả, tiết kiệm tiền bạc và thời gian.

pareto chart
 
3. Biểu đồ Pareto hỗ trợ như thế nào?
Nó cho phép bạn tập trung toàn bộ nỗ lực theo từng sự kiện. Nếu bạn giảm một nửa vấn đề mà gây ra 30% sự việc thì tức là về tổng thể bạn đã cải tiến được 15%. Nếu bạn loại bỏ 100% vấn đề mà chỉ gây ra 3% sự việc thì về tổng thể bạn cũng chỉ cải tiến được 3%. Do đó, Biểu đồ Pareto sẽ giúp bạn cần tập trung vào đâu để tạo ra những thay đổi lớn và đạt được kết quả cuối cùng.

4. Biểu đồ Pareto được áp dụng tại đâu?
Biểu đồ Pareto được áp dụng khi bạn phải đối mặt với những sự việc đa nhân tố. Sử dụng nó cho phép bạn lựa chọn nên ưu tiên tiến hành giải pháp nào và quản lý nguồn lực một cách hiệu quả nhất.

5. Khi nào Biểu đồ Pareto có ý nghĩa?
Biểu đồ Pareto có ý nghĩa khi bạn xác định ra các vấn đề lớn nhất và nguyên nhân gây ra chúng mà không biết bắt đầu từ đâu.

6. Biểu đồ Pareto đem lại lợi ích cho ai?
Biểu đồ Pareto đem lại lợi ích cho những ai liên quan tới dự án cải tiến. Cụ thể, lợi ích mà tổ chức nhận được đó là sự phân bổ nguồn lực hiệu quả vào vấn đề quan trọng nhất từ đó tạo ra cơ hội cải tiến tốt nhất.
Nó cũng là một công cụ trao đổi thông tin hiệu quả để giúp Lãnh đạo cấp cao và những người khác hiểu rõ tại sao bạn ưu tiên chọn triển khai các hoạt động hiện tại và kết quả mong đợi là gì.

Chú ýBiểu đồ Pareto cho bạn cái nhìn trực quan và có thể được sử dụng như một hình thức khuyến khích nhân viên đối mặt với các vấn đề lớn hơn. Trao quyền và khiến nhân viên thấy tự tin là một nhân tố quan trọng để đạt tới thành công trong dài hạn.

Dưới đây là chương trình demo mình vẽ biểu đồ Pareto bằng công cụ VB.NET

pareto_chart_vbnet_devexpress

Dưới đây, là code chương trình:

Imports System.ComponentModel
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports DevExpress.XtraCharts

Namespace CsWinFormsBlackApp
    Partial Public Class Form1
        Inherits DevExpress.XtraEditors.XtraForm
        Public Sub New()
            InitializeComponent()
        End Sub
        Dim con As New SqlConnection
        Public Sub Taoketnoi()
            Dim str As String = "Data Source=.;Initial Catalog=batdongsan;User ID=sa; pwd=minh123"
            con.ConnectionString = str
            con.Open()
        End Sub
        Public Function LayDulieu(sql As String) As DataTable
            Taoketnoi()
            Dim dt As New DataTable
            Dim da As New SqlDataAdapter
            da.SelectCommand = New SqlCommand(sql, con)
            da.Fill(dt)
            con.Close()
            Return dt
        End Function


        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim dt, dt2, dt3 As New DataTable
            dt = LayDulieu("select monhoc, diem from tbl_monhoc order by diem DESC")
            dt2 = LayDulieu("SELECT SUM(x.diem) AS tongdiem FROM (select diem from tbl_monhoc) x")

            GridControl1.DataSource = dt
            Dim chartControl1 As New ChartControl()
            ' Tính 2 điểm trùng nhau
            Dim dv As New DataView(dt, "diem = MAX(diem)", Nothing, DataViewRowState.CurrentRows)
            Dim max_bar, max_line, temp, maxX As Double
            max_bar = CDbl(dv.Item(0).Item(1))
            max_line = CDbl(dt2.Rows(0).Item(0))
            temp = Math.Round(100 - (max_bar / max_line * 100), 1)
            maxX = max_bar * 110 / temp
            'End tính 2 điểm trùng nhau
            ' Create two series.
            Dim series1 As New Series("Điểm số", ViewType.Bar)
            Dim series2 As New Series("Lũy tiến(%)", ViewType.Spline)

            ' Add points to them, with their arguments different.
            For Each dr As DataRow In dt.Rows
                series1.Points.Add(New SeriesPoint(dr("monhoc"), dr("diem")))
            Next


            For Each dr As DataRow In dt.Rows
                For Each dr2 As DataRow In dt2.Rows
                    Dim flag As Double
                    flag = Math.Round(100 - (CInt(dr("diem")) / CInt(dr2("tongdiem")) * 100), 1)
                    series2.Points.Add(New SeriesPoint(dr("monhoc"), flag))
                Next

            Next
            series2.Label.Visible = True
            series1.Label.Visible = True
            
            ' Add both series to the chart.
            chartControl1.Series.AddRange(New Series() {series1, series2})

            ' Hide the legend (optional).
            chartControl1.Legend.Visible = False

            ' Create two secondary axes, and add them to the chart's Diagram.
            Dim myAxisX As New SecondaryAxisX("my X-Axis")
            Dim myAxisY As New SecondaryAxisY("my Y-Axis")

            CType(chartControl1.Diagram, XYDiagram).SecondaryAxesX.Add(myAxisX)
            CType(chartControl1.Diagram, XYDiagram).SecondaryAxesY.Add(myAxisY)

            ' Assign the series2 to the created axes.
            CType(series2.View, LineSeriesView).AxisX = myAxisX
            CType(series2.View, LineSeriesView).AxisY = myAxisY

            ' Customize the appearance of the secondary axes (optional).



            myAxisX.Title.Text = "BIỂU ĐỒ PARETO ĐIỂM SỐ MÔN HỌC"
            myAxisX.Title.Visible = True
            myAxisX.Label.Visible = False
            myAxisX.Title.TextColor = Color.Orange
            myAxisX.Label.TextColor = Color.White
            myAxisX.Color = Color.White

            myAxisY.Label.MaxWidth = 200

            myAxisY.Title.Text = "A Secondary Y-Axis"
            myAxisY.Title.Visible = False
            myAxisY.Title.TextColor = Color.Black
            myAxisY.Label.TextColor = Color.Black
            myAxisY.Color = Color.Black

            ' Canh tọa độ
            Dim diagram As XYDiagram = CType(chartControl1.Diagram, XYDiagram)

            ' Enable the diagram's scrolling.
            diagram.AxisY.Range.MaxValue = maxX


            ' Add the chart to the form.
            chartControl1.Dock = DockStyle.Fill
            chartControl1.Legend.Visible = True
            Dim legend As Legend = chartControl1.Legend
            'chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.Center
            legend.Margins.All = 8
            legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center
            legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside
            legend.Direction = LegendDirection.LeftToRight
            GroupControl1.Controls.Add(chartControl1)
        End Sub
    End Class
End Namespace

DOWNLOAD SOURCE CODE PARETO CHART

Chúc các bạn thành công. Mọi câu hỏi thắc mắc đến bài viết xin truy cập http://hoidap.laptrinhvb.net để được support.yes

ĐỪNG QUÊN LIKE AND SHARE NHA CÁC BẠN. 

CÁM ƠN CÁC BẠN ĐÃ THEO DÕI.

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[DEVEXPRESS] Hướng dẫn vẽ biểu đồ Pareto sử dụng công cụ Chart Control trong VB.NET
Đăng bởi: Thảo Meo - Lượt xem: 16355 18:46:52, 22/11/2016C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.