Làm thế nào để bạn khớp các thanh lỗi trong python?
nhập khẩu cốt truyện. graph_objects as go import numpy as np x_theo = np. linspace(-4, 4, 100) sincx = np. sin(x_theo) x = [-3. 8, -3. 03, -1. 91, -1. 46, -0. 89, -0. 24, -0. 0, 0. 41, 0. 89, 1. 01, 1. 91, 2. 28, 2. 79, 3. 56] y = [-0. 02, 0. 04, -0. 01, -0. 27, 0. 36, 0. 75, 1. 03, 0. 65, 0. 28, 0. 02, -0. 11, 0. 16, 0. 04, -0. 15] vả = đi. Hình () hình. add_trace(đi. Phân tán( x=x_theo, y=sincx, name='sinc(x)' )) hình. add_trace(đi. Phân tán( x=x, y=y, mode='markers', name='measured', error_y=dict( type='constant', value=0. 1, màu='tím', độ dày=1. 5, width=3, ), error_x=dict( type='constant', value=0. 2, màu='tím', độ dày=1. 5, chiều rộng=3, ), điểm đánh dấu=dict(color='purple', size=8) )) hình. chỉ()
Trong các nghiên cứu khoa học, việc hiển thị các thanh lỗi trong hình ảnh mô tả của bạn là điều không thể tránh khỏi. Nắm giữ thông tin về tính biến thiên của dữ liệu của bạn, chúng là phần bổ sung cần thiết cho điểm trung bình của bạn. Tuy nhiên, hình dung khoa học có xu hướng đẹp bên trong hơn bên ngoài Là nhà khoa học dữ liệu, chúng ta được dạy sử dụng hình ảnh trực quan hấp dẫn để kể chuyện. Bất cứ thứ gì khiến người xem mất tập trung vào điểm chính mà chúng tôi đang cố gắng thực hiện đều được khuyên nên loại bỏ. Điều này hoàn toàn hợp lý, vì người quản lý và khách hàng thường không nắm rõ các số liệu thống kê cũng như không có nhiều thời gian và năng lượng để dành cho hình ảnh của bạn Để diễn giải các thanh lỗi, bạn cần
Cả hai giả định này đều xung đột với mục đích của người kể chuyện dữ liệu. Bạn muốn bất cứ ai hiểu kết quả mà không cần phải đọc qua tám dòng ghi chú Người kể chuyện dữ liệu coi các thanh lỗi là trở ngại, bởi vì chúng ngăn cản việc giải thích dữ liệu của họ một cách dễ dàng, thoải mái và thống nhất. Mặt khác, các nhà khoa học được đào tạo để hiển thị tất cả thông tin cần thiết và để người đọc tự giải thích kết quả. Cả hai cách tiếp cận này đều không vượt trội. Việc đơn giản hóa quá mức các kết quả trong các báo cáo kỹ thuật hoặc các cuộc họp của nhóm dữ liệu cũng gây bất lợi như việc làm phiền người quản lý và khách hàng của bạn bằng các bài giảng tự phát về thống kê
Khi tôi tạo hình ảnh trực quan cho bài báo khoa học đầu tiên của mình, tôi đã thử rất nhiều phương pháp khác nhau. Hãy để tôi tiết kiệm thời gian cho bạn và giới thiệu cho bạn phương pháp nhanh chóng và dễ dàng mà tôi tìm thấy. Tất cả những gì bạn cần để theo dõi bài viết này và tự mình áp dụng phương pháp là một số kiến thức cơ bản về thống kê, python và thư viện pandas C phép tính Có hai tham số chính phù hợp với các thanh lỗi
Tôi đặc biệt khuyên bạn nên làm quen với các tham số này để bạn có thể đưa ra quyết định có học thức về việc sử dụng tham số nào cho hình ảnh hóa của mình. Trong bài viết này của Claudia Clement, các khái niệm được giải thích một cách hoàn hảo Trước tiên, chúng tôi cần nhập thư viện và tải dữ liệu của mình. Chúng tôi sẽ sử dụng bộ dữ liệu giá bơ từ kaggle. Bạn không cần biết nhiều về tập dữ liệu. Tất cả những gì chúng tôi muốn biết là liệu bơ thông thường và bơ hữu cơ (cột “loại”) có giá khác nhau hay không (cột “Giá trung bình”) # Imports Cách dễ nhất để thực hiện các tính toán của chúng tôi là sử dụng pandas df. chức năng nhóm. Hàm này có nhiều ứng dụng hữu ích, nhưng trong trường hợp này, chúng tôi sẽ sử dụng nó để tính toán tổng hợp các tham số thống kê. Dưới đây, bạn có thể xem nguyên mẫu mã df.groupby("col_to_group_by").agg([func_1, func_2, func_3])
Chúng tôi có khung dữ liệu và cột để nhóm theo, vì vậy chúng tôi cần tìm các chức năng phù hợp ngay bây giờ. Hãy nhớ rằng, chúng ta muốn giá trị trung bình, độ lệch chuẩn x 2 và sai số chuẩn. Đây là những chức năng chúng ta cần NumPy
khoa học viễn tưởng
Bởi vì df. theo nhóm. Hàm agg chỉ lấy danh sách các hàm làm đầu vào, chúng ta không thể chỉ sử dụng np. std * 2 để có được độ lệch chuẩn gấp đôi của chúng tôi. Tuy nhiên, chúng ta chỉ có thể viết chức năng của riêng mình def double_std(array): Bây giờ, hãy sử dụng mã nguyên mẫu và điền vào chỗ dành sẵn # df.groupby("col_to_group_by").agg([func_1, func_2, func_3]) Đẹp. Bây giờ, hãy chỉ chọn cột “Giá trung bình”, vì chúng ta không cần phần còn lại avocado_prices = avocado_prices["AveragePrice"] bơ_prices. head() hiện cung cấp cho chúng tôi đầu ra sau Bảng 1 — df. theo nhóm. đầu ra aggTuyệt vời. Bây giờ chúng tôi có tất cả dữ liệu chúng tôi cần Hình dung Pandas có một chức năng thực sự hữu ích cho phép chúng tôi nhanh chóng có được hình dung đầu tiên mà không cần thực hiện toàn bộ quy trình matplotlib. df. kịch bản Về cơ bản, nó là một đại diện matplotlib trong pandas Để có được một biểu đồ đầu tiên mà không có bất kỳ thanh lỗi nào, chúng ta chỉ cần một dòng mã avocado_prices.plot(kind = "barh", y = "mean", legend = False, title = "Average Avocado Prices") đầu ra Hình 1 - Không có thanh lỗiCó thể thấy bơ hữu cơ có giá trung bình cao hơn so với bơ thông thường. Nhưng đây có phải là một sự khác biệt thực sự hay chỉ là sự lây lan ngẫu nhiên? . Tất cả những gì chúng ta cần làm là gán tham số thống kê cho đối số xerr. Hãy bắt đầu với tham số “double_std” avocado_prices.plot(kind = "barh", y = "mean", legend = False, title = "Average Avocado Prices", xerr = "double_std") đầu ra Hình 2 - Độ lệch chuẩn x 2 thanh lỗihọ đây rồi. Ngay cả khi không có bất kỳ kiến thức chuyên sâu nào về cách diễn giải các thanh lỗi này, chúng ta có thể thấy rằng mức độ biến động của giá là khá cao và các thanh lỗi của mỗi thanh chạm vào thanh kia. Có lẽ sự khác biệt không rõ ràng và lớn như chúng ta mong đợi khi chỉ nhìn thấy cốt truyện đầu tiên? . Chỉ cần lưu ý rằng cốt truyện này để lại cho chúng ta một ấn tượng khác với phần trước Điều gì xảy ra nếu chúng ta vẽ lỗi tiêu chuẩn tiếp theo? avocado_prices.plot(kind = "barh", y = "mean", legend = False, title = "Average Avocado Prices", xerr = "sem") đầu ra Hình 3 - Thanh lỗi tiêu chuẩnGì? . Sai số chuẩn nhạy cảm với kích thước mẫu, vì nó thấp hơn trong các mẫu lớn so với các mẫu nhỏ. Mẫu bơ có hơn 250k lượt quan sát nên kết quả hợp lý. Cốt truyện thứ ba này lại để lại ấn tượng hoàn toàn khác
Cho đến nay, chúng tôi đã nhận được kết quả rất tốt chỉ từ một dòng mã. Nếu chúng ta dành thêm thời gian để cải thiện khả năng trực quan hóa của mình, chúng ta có thể nhận được kết quả như Hình 4 ________số 8_______đầu ra Hình 4 - Biểu đồ cuối cùngTạo các thanh lỗi trong python rất dễ dàng. Sử dụng một số chức năng gấu trúc nâng cao, chúng ta có thể chuyển từ khung dữ liệu sang trực quan hóa có (hoặc không có) thanh lỗi chỉ trong hai dòng mã. Tuy nhiên, nếu bạn chưa tìm hiểu số liệu thống kê đằng sau các thanh lỗi, trước tiên bạn cần làm điều đó. Bạn đã thấy ba ô khác nhau như thế nào (không có thanh lỗi so với. độ lệch chuẩn nhân đôi so với. lỗi tiêu chuẩn) nhìn. Lúc đầu, điều này có vẻ đáng sợ, nhưng khi bạn đã học nó, đó là một công cụ rất hữu ích khác trong bộ kỹ năng khoa học dữ liệu của bạn |