Hướng dẫn show value in histogram python - hiển thị giá trị trong biểu đồ python
Không chỉ sử dụng giải pháp 1 mà với một số chức năng được thêm vào. Show
Nếu bạn không muốn chỉ định các thùng của mình trước và chỉ vẽ các thanh mật độ, nhưng cũng muốn hiển thị số lượng thùng bạn có thể sử dụng sau đây.
Kết quả trông như sau: Để hiển thị số lượng trên thanh trong biểu đồ matplotlib, chúng ta có thể lặp lại từng bản vá và sử dụng phương thức văn bản () để đặt các giá trị lên các bản vá.text() method to place the values over the patches. Các bước
Thí dụimport matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show() Đầu ra
Cập nhật ngày 15 tháng 6 năm 2021 13:19:36
Trong hướng dẫn này, bạn sẽ được trang bị để tạo ra các biểu đồ Python chất lượng sản xuất, trình bày sẵn sàng trình bày với một loạt các lựa chọn và tính năng. Nếu bạn đã giới thiệu kiến thức trung gian về Python và thống kê, thì bạn có thể sử dụng bài viết này như một cửa hàng để xây dựng và âm mưu biểu đồ trong Python sử dụng các thư viện từ ngăn xếp khoa học của nó, bao gồm Numpy, Matplotlib, Pandas và Seaborn. Biểu đồ là một công cụ tuyệt vời để nhanh chóng đánh giá phân phối xác suất được hầu hết các đối tượng hiểu trực giác. Python cung cấp một số ít các tùy chọn khác nhau để xây dựng và vẽ biểu đồ. Hầu hết mọi người đều biết biểu đồ theo biểu diễn đồ họa của nó, tương tự như biểu đồ thanh: Bài viết này sẽ hướng dẫn bạn thông qua việc tạo các lô như phần trên cũng như những bài viết phức tạp hơn. Đây là những gì bạn bao gồm:
Biểu đồ trong Python thuần túyKhi bạn đang chuẩn bị vẽ một biểu đồ, việc không nghĩ về các thùng là đơn giản nhất mà là báo cáo bao nhiêu lần mỗi giá trị xuất hiện (một bảng tần số). Một từ điển Python rất phù hợp cho nhiệm vụ này: >>>
2 trả về một từ điển với các phần tử duy nhất từ chuỗi dưới dạng các khóa và tần số (số đếm) của chúng là giá trị. Trong vòng lặp trên 3, 4 cho biết, đối với mỗi phần tử của chuỗi, tăng giá trị tương ứng của nó trong 5 bởi 1.Trên thực tế, đây chính xác là những gì được thực hiện bởi lớp 6 từ thư viện tiêu chuẩn Python, trong đó phân lớp từ điển Python và ghi đè phương thức 7 của nó:>>>
2 trả về một từ điển với các phần tử duy nhất từ chuỗi dưới dạng các khóa và tần số (số đếm) của chúng là giá trị. Trong vòng lặp trên 3, 4 cho biết, đối với mỗi phần tử của chuỗi, tăng giá trị tương ứng của nó trong 5 bởi 1.>>>
Nó có thể hữu ích để xây dựng các chức năng đơn giản hóa từ đầu như là bước đầu tiên để hiểu các chức năng phức tạp hơn. Hãy để tiếp tục phát minh lại bánh xe một chút với biểu đồ ASCII tận dụng định dạng đầu ra của Python,:
Hàm này tạo ra một biểu đồ tần số được sắp xếp trong đó số lượng được biểu diễn dưới dạng các biểu tượng của Plus ( 9). Gọi 0 trên một từ điển trả về một danh sách được sắp xếp các khóa của nó và sau đó bạn truy cập giá trị tương ứng cho mỗi khóa với 1. Để xem điều này trong hành động, bạn có thể tạo một bộ dữ liệu lớn hơn một chút với mô -đun Python, ____32:>>>
Ở đây, bạn có thể mô phỏng việc nhổ lông từ 3 với các tần số được cung cấp bởi 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ 3 một số lần nhất định từ 5 đến 15.Xây dựng từ cơ sở: Tính toán biểu đồ trong NumpyCho đến nay, bạn đã làm việc với những gì có thể được gọi là bảng tần số tốt nhất. Nhưng về mặt toán học, một biểu đồ là một ánh xạ các thùng (khoảng) đến tần số. Về mặt kỹ thuật, nó có thể được sử dụng để xấp xỉ hàm mật độ xác suất (PDF) của biến cơ bản. Di chuyển từ bảng tần số của người Viking ở trên, một biểu đồ thực sự đầu tiên là các thùng rác, phạm vi của các giá trị và sau đó đếm số lượng các giá trị rơi vào mỗi thùng. Đây là những gì chức năng Numpy từ 6 làm, và nó là cơ sở cho các chức năng khác mà bạn sẽ thấy ở đây sau này trong các thư viện Python như Matplotlib và Pandas.Hãy xem xét một mẫu phao được rút ra từ phân phối Laplace. Phân phối này có đuôi béo hơn so với phân phối bình thường và có hai tham số mô tả (vị trí và tỷ lệ): >>>
Ở đây, bạn có thể mô phỏng việc nhổ lông từ 3 với các tần số được cung cấp bởi 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ 3 một số lần nhất định từ 5 đến 15.>>>
Ở đây, bạn có thể mô phỏng việc nhổ lông từ 3 với các tần số được cung cấp bởi 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ 3 một số lần nhất định từ 5 đến 15.>>>
Ở đây, bạn có thể mô phỏng việc nhổ lông từ 3 với các tần số được cung cấp bởi 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ 3 một số lần nhất định từ 5 đến 15.>>> import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()0 Ở đây, bạn có thể mô phỏng việc nhổ lông từ 3 với các tần số được cung cấp bởi 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ 3 một số lần nhất định từ 5 đến 15.Xây dựng từ cơ sở: Tính toán biểu đồ trong Numpy >>> import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()1 Ở đây, bạn có thể mô phỏng việc nhổ lông từ >>> from collections import Counter >>> recounted = Counter(a) >>> recounted Counter({0: 1, 1: 3, 3: 1, 2: 1, 7: 2, 23: 1}) 3 với các tần số được cung cấp bởi >>> from collections import Counter >>> recounted = Counter(a) >>> recounted Counter({0: 1, 1: 3, 3: 1, 2: 1, 7: 2, 23: 1}) 4 (một biểu thức máy phát). Dữ liệu mẫu kết quả lặp lại mỗi giá trị từ >>> from collections import Counter >>> recounted = Counter(a) >>> recounted Counter({0: 1, 1: 3, 3: 1, 2: 1, 7: 2, 23: 1}) 3 một số lần nhất định từ 5 đến 15.Xây dựng từ cơ sở: Tính toán biểu đồ trong Numpy import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()2 Cho đến nay, bạn đã làm việc với những gì có thể được gọi là bảng tần số tốt nhất. Nhưng về mặt toán học, một biểu đồ là một ánh xạ các thùng (khoảng) đến tần số. Về mặt kỹ thuật, nó có thể được sử dụng để xấp xỉ hàm mật độ xác suất (PDF) của biến cơ bản. Di chuyển từ bảng tần số của người Viking ở trên, một biểu đồ thực sự đầu tiên là các thùng rác, phạm vi của các giá trị và sau đó đếm số lượng các giá trị rơi vào mỗi thùng. Đây là những gì chức năng Numpy từ 6 làm, và nó là cơ sở cho các chức năng khác mà bạn sẽ thấy ở đây sau này trong các thư viện Python như Matplotlib và Pandas.import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()3 Hãy xem xét một mẫu phao được rút ra từ phân phối Laplace. Phân phối này có đuôi béo hơn so với phân phối bình thường và có hai tham số mô tả (vị trí và tỷ lệ): Trong trường hợp này, bạn đã làm việc với một phân phối liên tục, và nó sẽ rất hữu ích khi kiểm đếm từng chiếc phao một cách độc lập, xuống vị trí thập phân. Thay vào đó, bạn có thể thùng hoặc xô của người dùng dữ liệu và đếm các quan sát rơi vào mỗi thùng. Biểu đồ là số lượng kết quả của các giá trị trong mỗi thùng:Kết quả này có thể không trực quan ngay lập tức. 7 Theo mặc định sử dụng 10 thùng có kích thước bằng nhau và trả về một bộ số lượng tần số và các cạnh thùng tương ứng. Chúng là các cạnh theo nghĩa là sẽ có một cạnh thùng nhiều hơn so với các thành viên của biểu đồ:Một sự cố rất cô đọng về cách các thùng được xây dựng bởi Numpy trông như thế này: Trường hợp trên có rất nhiều ý nghĩa: 10 thùng cách đều nhau trong phạm vi từ cực đại đến đỉnh của 23 khoảng thời gian có chiều rộng 2.3. >>> import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()4 Từ đó, chức năng ủy quyền cho 8 hoặc 9. 0 có thể được sử dụng để xây dựng hiệu quả bảng tần số mà bạn bắt đầu với ở đây, với sự khác biệt rằng các giá trị có sự xuất hiện bằng không được bao gồm:import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()5 Các phương pháp này tận dụng SCIPY từ 9, dẫn đến một bản PDF trông mượt mà hơn.Nếu bạn xem xét kỹ hơn chức năng này, bạn có thể thấy nó gần đúng mức độ của PDF True True PDF đối với một mẫu tương đối nhỏ gồm 1000 điểm dữ liệu. Dưới đây, trước tiên bạn có thể xây dựng phân phối phân tích trực tuyến với 0. Đây là một thể hiện lớp gói đóng gói phân phối bình thường tiêu chuẩn thống kê, khoảnh khắc và các hàm mô tả. PDF của nó là chính xác của nó theo nghĩa là nó được xác định chính xác là 1.Xây dựng từ đó, bạn có thể lấy một mẫu ngẫu nhiên là 1000 datapoints từ phân phối này, sau đó cố gắng quay lại ước tính PDF với 2:import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()6 Đây là một đoạn mã lớn hơn, vì vậy, hãy để một giây để chạm vào một vài dòng chính:
Một sự thay thế lạ mắt với SeabornHãy để Lừa mang thêm một gói Python vào hỗn hợp. Seaborn có chức năng 8 biểu đồ biểu đồ và KDE cho phân phối đơn biến trong một bước. Sử dụng mảng numpy 9 từ Ealier:import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()7 Cuộc gọi ở trên tạo ra một KDE. Ngoài ra còn có tính tùy chọn để phù hợp với một phân phối cụ thể cho dữ liệu. Điều này khác với KDE và bao gồm ước tính tham số cho dữ liệu chung và tên phân phối được chỉ định: import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()8 Một lần nữa, lưu ý sự khác biệt nhỏ. Trong trường hợp đầu tiên, bạn đã ước tính một số PDF không xác định; Trong lần thứ hai, bạn đã lấy một phân phối đã biết và tìm ra những tham số mô tả tốt nhất nó được cung cấp dữ liệu thực nghiệm. Các công cụ khác trong gấu trúcNgoài các công cụ vẽ đồ thị, Pandas cũng cung cấp một phương thức 0 thuận tiện để tính toán biểu đồ của các giá trị không null cho gấu trúc 7:>>> import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = [3, 5, 1, 7, 9, 5, 3, 7, 5] _, _, patches = plt.hist(data, align="mid") for pp in patches: x = (pp._x0 + pp._x1)/2 y = pp._y1 + 0.05 plt.text(x, y, pp._y1) plt.show()9 Ở những nơi khác, 2 là một cách thuận tiện để các giá trị thùng thành các khoảng thời gian tùy ý. Hãy nói rằng bạn có một số dữ liệu về độ tuổi của các cá nhân và muốn xô chúng một cách hợp lý:>>> 0Ở những nơi khác, 2 là một cách thuận tiện để các giá trị thùng thành các khoảng thời gian tùy ý. Hãy nói rằng bạn có một số dữ liệu về độ tuổi của các cá nhân và muốn xô chúng một cách hợp lý:Điều mà tốt đẹp là cả hai hoạt động này cuối cùng sử dụng mã Cython giúp chúng cạnh tranh về tốc độ trong khi duy trì tính linh hoạt của chúng.Được rồi, vậy tôi nên sử dụng cái nào?
Bạn cũng có thể tìm thấy các đoạn mã từ bài viết này cùng nhau trong một tập lệnh tại trang Vật liệu Python thực. Với điều đó, chúc may mắn tạo ra biểu đồ trong tự nhiên. Hy vọng một trong những công cụ trên sẽ phù hợp với nhu cầu của bạn. Dù bạn làm gì, chỉ cần don sử dụng biểu đồ hình tròn. Làm thế nào để bạn hiển thị một giá trị trong một biểu đồ trong Python?Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ .. Lập danh sách các số để lập biểu đồ biểu đồ .. Sử dụng phương pháp hist () để tạo biểu đồ .. Lặp lại các bản vá và tính toán giá trị trung bình của mỗi bản vá và chiều cao của bản vá để đặt một văn bản .. Để hiển thị hình, sử dụng phương thức show () .. Làm thế nào để bạn vẽ một dòng trên biểu đồ trong Python?Nhận dữ liệu cho x bằng một số phương trình, đặt num_bins = 50 .. Tạo các biến FIG và AX bằng phương thức Subplots, trong đó NROW và NCOL mặc định là 1 .. Nhận n, thùng, các bản vá giá trị bằng AX. .... Sơ đồ các dòng trung bình sử dụng dữ liệu thùng và y thu được từ một số phương trình .. Đặt nhãn trục x bằng PLT .. Làm cách nào để hiển thị biểu đồ trong matplotlib?Trong matplotlib, chúng tôi sử dụng hàm hist () để tạo biểu đồ.Hàm Hist () sẽ sử dụng một mảng các số để tạo biểu đồ, mảng được gửi vào hàm làm đối số.use the hist() function to create histograms. The hist() function will use an array of numbers to create a histogram, the array is sent into the function as an argument.
Bin trong biểu đồ python là gì?Nó là một loại biểu đồ thanh.Để xây dựng một biểu đồ, bước đầu tiên là về Bin bin, phạm vi của các giá trị - nghĩa là chia toàn bộ phạm vi giá trị thành một loạt các khoảng - và sau đó đếm số lượng giá trị rơi vào mỗi khoảng.Các thùng thường được chỉ định là các khoảng liên tiếp, không chồng chéo của một biến.the range of values — that is, divide the entire range of values into a series of intervals — and then count how many values fall into each interval. The bins are usually specified as consecutive, non-overlapping intervals of a variable. |