Hướng dẫn create a scatter plot in python - tạo biểu đồ phân tán trong python
Cốt truyện phân tánMột biểu đồ phân tán là một sơ đồ trong đó mỗi giá trị trong tập dữ liệu được biểu thị bằng một dấu chấm. Show
Mô-đun matplotlib có phương pháp vẽ các sơ đồ phân tán, nó cần hai mảng có cùng độ dài, một cho các giá trị của trục X và một cho các giá trị của trục y: 7 8Mảng 9 đại diện cho tuổi của mỗi chiếc xe.Mảng 0 đại diện cho tốc độ của mỗi chiếc xe.Thí dụSử dụng phương thức 1 để vẽ sơ đồ biểu đồ phân tán:Nhập matplotlib.pyplot như PLT x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77, 85,86] plt.scatter (x, y) plt.show () Result:Chạy ví dụ » Lô đất giải thíchTrục X đại diện cho độ tuổi và trục y đại diện cho tốc độ. Những gì chúng ta có thể đọc từ sơ đồ là hai chiếc xe nhanh nhất cả hai đều 2 tuổi và chiếc xe chậm nhất là 12 tuổi. Lưu ý: Có vẻ như chiếc xe mới hơn, nó lái nhanh hơn, nhưng đó có thể là một sự trùng hợp ngẫu nhiên, sau tất cả chúng tôi chỉ đăng ký 13 chiếc xe. It seems that the newer the car, the faster it drives, but that could be a coincidence, after all we only registered 13 cars. Phân phối dữ liệu ngẫu nhiênTrong máy học, các bộ dữ liệu có thể chứa hàng ngàn hoặc thậm chí hàng triệu giá trị. Bạn có thể không có dữ liệu trong thế giới thực khi bạn đang kiểm tra thuật toán, bạn có thể phải sử dụng các giá trị được tạo ngẫu nhiên. Như chúng ta đã học được trong chương trước, mô -đun Numpy có thể giúp chúng ta với điều đó! Hãy để chúng tôi tạo hai mảng cả hai đều chứa đầy 1000 số ngẫu nhiên từ phân phối dữ liệu thông thường. Mảng đầu tiên sẽ có trung bình được đặt thành 5.0 với độ lệch chuẩn là 1.0. Mảng thứ hai sẽ có trung bình được đặt thành 10.0 với độ lệch chuẩn là 2.0: Thí dụSử dụng phương thức 1 để vẽ sơ đồ biểu đồ phân tán: Nhập matplotlib.pyplot như PLT x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77, 85,86] plt.scatter (x, y) plt.show () Result:Chạy ví dụ » Lô đất giải thíchTrục X đại diện cho độ tuổi và trục y đại diện cho tốc độ. Những gì chúng ta có thể đọc từ sơ đồ là hai chiếc xe nhanh nhất cả hai đều 2 tuổi và chiếc xe chậm nhất là 12 tuổi. Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng plt.scatter () để trực quan hóa dữ liệu trong Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using plt.scatter() to Visualize Data in Python Chức năng nào sẽ tạo ra sơ đồ phân tán trong Python?visualize it. Python has several third-party modules you can use for data
visualization. One of the most popular modules is Matplotlib and its submodule pyplot, often referred to using the alias Matplotlib có chức năng tích hợp để tạo các biểu đồ phân tán được gọi là scatter (). Việc sử dụng phương thức scatter () trong python *là gì?
Bạn có thể tận dụng tối đa trực quan hóa bằng cách sử dụng 3 bằng cách tìm hiểu thêm về tất cả các tính năng trong matplotlib và xử lý dữ liệu bằng cách sử dụng Numpy.Tạo các lô phân tánMột biểu đồ phân tán là một đại diện trực quan về cách hai biến liên quan đến nhau. Bạn có thể sử dụng các sơ đồ phân tán để khám phá mối quan hệ giữa hai biến, ví dụ bằng cách tìm kiếm bất kỳ mối tương quan nào giữa chúng. Trong phần này của hướng dẫn, bạn sẽ trở nên quen thuộc với việc tạo ra các sơ đồ phân tán cơ bản bằng cách sử dụng matplotlib. Trong các phần sau, bạn sẽ học cách tùy chỉnh thêm các lô của mình để biểu diễn dữ liệu phức tạp hơn bằng cách sử dụng nhiều hơn hai chiều. Bắt đầu với plt.plot(price, sales_per_day, "o") plt.show() 3Trước khi bạn có thể bắt đầu làm việc với 3, bạn sẽ cần cài đặt matplotlib. Bạn có thể làm như vậy bằng cách sử dụng Manger Gói tiêu chuẩn Python, 8, bằng cách chạy lệnh sau trong bảng điều khiển:
Bây giờ bạn đã cài đặt matplotlib, hãy xem xét trường hợp sử dụng sau. Một quán cà phê bán sáu loại đồ uống cam đóng chai khác nhau. Chủ sở hữu muốn hiểu mối quan hệ giữa giá của đồ uống và số lượng mỗi người anh ta bán, vì vậy anh ta theo dõi số lượng mỗi chiếc đồ uống anh ta bán mỗi ngày. Bạn có thể hình dung mối quan hệ này như sau:
Trong tập lệnh Python này, bạn nhập mô hình con ____29 từ matplotlib bằng bí danh 2. Bí danh này thường được sử dụng bởi quy ước để rút ngắn tên mô -đun và mô hình con. Sau đó, bạn tạo danh sách với giá cả và doanh số trung bình mỗi ngày cho mỗi sáu đồ uống màu cam được bán.Cuối cùng, bạn tạo biểu đồ phân tán bằng cách sử dụng 3 với hai biến bạn muốn so sánh làm đối số đầu vào. Khi bạn sử dụng tập lệnh Python, bạn cũng cần hiển thị rõ ràng con số bằng cách sử dụng 2.Khi bạn sử dụng một môi trường tương tác, chẳng hạn như bảng điều khiển hoặc máy tính xách tay Jupyter, bạn không cần phải gọi 2. Trong hướng dẫn này, tất cả các ví dụ sẽ ở dạng tập lệnh và sẽ bao gồm cuộc gọi đến 2.Ở đây, đầu ra từ mã này: Cốt truyện này cho thấy, nói chung, một thức uống càng đắt tiền, càng ít mặt hàng được bán. Tuy nhiên, đồ uống có giá 4,02 đô la là một ngoại lệ, có thể cho thấy nó là một sản phẩm đặc biệt phổ biến. Khi sử dụng các sơ đồ phân tán theo cách này, kiểm tra chặt chẽ có thể giúp bạn khám phá mối quan hệ giữa các biến. Sau đó, bạn có thể thực hiện phân tích thêm, cho dù đó là sử dụng hồi quy tuyến tính hoặc các kỹ thuật khác. So sánh plt.plot(price, sales_per_day, "o") plt.show() 3 và import timeit import matplotlib.pyplot as plt price = [2.50, 1.23, 4.02, 3.25, 5.00, 4.40] sales_per_day = [34, 62, 49, 22, 13, 19] print( "plt.scatter()", timeit.timeit( "plt.scatter(price, sales_per_day)", number=1000, globals=globals(), ), ) print( "plt.plot()", timeit.timeit( "plt.plot(price, sales_per_day, 'o')", number=1000, globals=globals(), ), ) 6Bạn cũng có thể tạo ra biểu đồ phân tán được hiển thị ở trên bằng cách sử dụng một chức năng khác trong 7. Matplotlib từ 6 là một hàm âm mưu đa năng sẽ cho phép bạn tạo các sơ đồ đánh dấu hoặc dòng khác nhau khác nhau.Bạn có thể đạt được biểu đồ phân tán tương tự như bản đồ bạn thu được trong phần trên với cuộc gọi sau đến 6, sử dụng cùng một dữ liệu:
Trong trường hợp này, bạn phải bao gồm đánh dấu 0 làm đối số thứ ba, vì nếu không 6 sẽ vẽ biểu đồ dòng. Cốt truyện bạn đã tạo với mã này giống hệt với cốt truyện bạn đã tạo trước đó với 3.Trong một số trường hợp, đối với âm mưu phân tán cơ bản mà bạn đang vẽ trong ví dụ này, sử dụng 6 có thể thích hợp hơn. Bạn có thể so sánh hiệu quả của hai chức năng bằng mô -đun 4:
Hiệu suất sẽ thay đổi trên các máy tính khác nhau, nhưng khi bạn chạy mã này, bạn sẽ thấy rằng 6 hiệu quả hơn đáng kể so với 3. Khi chạy ví dụ trên trên hệ thống của tôi, 6 nhanh hơn bảy lần.Nếu bạn có thể tạo các sơ đồ phân tán bằng cách sử dụng 6 và nó cũng nhanh hơn nhiều, tại sao bạn nên sử dụng 3? Bạn sẽ tìm thấy câu trả lời trong phần còn lại của hướng dẫn này. Hầu hết các tùy chỉnh và sử dụng nâng cao mà bạn sẽ tìm hiểu trong hướng dẫn này chỉ có thể khi sử dụng 3. Ở đây, một quy tắc của ngón tay cái bạn có thể sử dụng:
Trong phần tiếp theo, bạn sẽ bắt đầu khám phá việc sử dụng nâng cao hơn của 3.Tùy chỉnh các điểm đánh dấu trong các sơ đồ phân tánBạn có thể trực quan hóa nhiều hơn hai biến trên biểu đồ phân tán hai chiều bằng cách tùy chỉnh các điểm đánh dấu. Có bốn tính năng chính của các điểm đánh dấu được sử dụng trong một biểu đồ phân tán mà bạn có thể tùy chỉnh với 3:
Trong phần này của hướng dẫn, bạn sẽ học cách sửa đổi tất cả các thuộc tính này. Thay đổi kích thướcHãy để trở lại với chủ quán cà phê mà bạn đã gặp trước đó trong hướng dẫn này. Các loại đồ uống màu cam khác nhau mà anh ta bán đến từ các nhà cung cấp khác nhau và có tỷ suất lợi nhuận khác nhau. Bạn có thể hiển thị thông tin bổ sung này trong biểu đồ phân tán bằng cách điều chỉnh kích thước của điểm đánh dấu. Biên lợi nhuận được đưa ra dưới dạng phần trăm trong ví dụ này:
Bạn có thể nhận thấy một vài thay đổi từ ví dụ đầu tiên. Thay vì danh sách, bạn hiện đang sử dụng các mảng numpy. Bạn có thể sử dụng bất kỳ cấu trúc dữ liệu giống như mảng nào cho dữ liệu và các mảng numpy thường được sử dụng trong các loại ứng dụng này vì chúng cho phép các hoạt động theo yếu tố được thực hiện hiệu quả. Mô -đun Numpy là một sự phụ thuộc của matplotlib, đó là lý do tại sao bạn không cần phải cài đặt nó theo cách thủ công.element-wise operations that are performed efficiently. The NumPy module is a dependency of Matplotlib, which is why you don’t need to install it manually. Bạn cũng đã sử dụng các tham số được đặt tên làm đối số đầu vào trong lệnh gọi hàm. Các tham số 9 và 0 là bắt buộc, nhưng tất cả các tham số khác là tùy chọn.named parameters as input arguments in the function call. The parameters 9 and 0 are required, but all other parameters are optional.Tham số 7 biểu thị kích thước của điểm đánh dấu. Trong ví dụ này, bạn sử dụng biên lợi nhuận như một biến để xác định kích thước của điểm đánh dấu và nhân nó với 8 để hiển thị chênh lệch kích thước rõ ràng hơn.Bạn có thể thấy biểu đồ phân tán được tạo bởi mã này bên dưới: Kích thước của điểm đánh dấu cho thấy tỷ suất lợi nhuận cho mỗi sản phẩm. Hai loại đồ uống màu cam bán nhiều nhất cũng là những thứ có tỷ suất lợi nhuận cao nhất. Đây là tin tốt cho chủ quán cà phê! Thay đổi màu sắcNhiều khách hàng của quán cà phê muốn đọc các nhãn một cách cẩn thận, đặc biệt là để tìm ra hàm lượng đường của đồ uống mà họ mua. Chủ quán cà phê muốn nhấn mạnh lựa chọn thực phẩm lành mạnh trong chiến dịch tiếp thị tiếp theo của mình, vì vậy anh ta phân loại đồ uống dựa trên hàm lượng đường của họ và sử dụng hệ thống đèn giao thông để biểu thị hàm lượng đường thấp, trung bình hoặc đường cao cho đồ uống. Bạn có thể thêm màu sắc vào các điểm đánh dấu trong biểu đồ phân tán để hiển thị hàm lượng đường của mỗi đồ uống:
Bạn xác định các biến 9, 0 và 1 là bộ dữ liệu, mỗi bộ chứa ba giá trị đại diện cho các thành phần màu đỏ, xanh lá cây và xanh lam theo thứ tự đó. Đây là các giá trị màu RGB. Các bộ dữ liệu cho 9, 0 và 1 lần lượt đại diện cho màu xanh lá cây, vàng và đỏ.Sau đó, bạn đã xác định biến 5 để phân loại từng đồ uống. Bạn sử dụng tham số tùy chọn 6 trong lệnh gọi hàm để xác định màu của mỗi điểm đánh dấu. Ở đây, cốt truyện phân tán được sản xuất bởi mã này:Chủ quán cà phê đã quyết định loại bỏ đồ uống đắt nhất khỏi thực đơn vì điều này không bán được và có hàm lượng đường cao. Anh ta cũng có nên ngừng dự trữ đồ uống rẻ nhất để tăng thông tin sức khỏe của doanh nghiệp, mặc dù nó bán tốt và có tỷ suất lợi nhuận tốt? Thay đổi hình dạngChủ quán cà phê đã thấy bài tập này rất hữu ích, và anh ta muốn điều tra một sản phẩm khác. Ngoài đồ uống màu cam, bây giờ bạn cũng sẽ vẽ dữ liệu tương tự cho phạm vi của các thanh ngũ cốc có sẵn trong quán cà phê:
Trong mã này, bạn tái cấu trúc các tên biến cần tính đến rằng bây giờ bạn có dữ liệu cho hai sản phẩm khác nhau. Sau đó, bạn vẽ cả hai sơ đồ phân tán trong một hình duy nhất. Điều này cho đầu ra sau: Thật không may, bạn không còn có thể tìm ra điểm dữ liệu nào thuộc về đồ uống màu cam và với các thanh ngũ cốc. Bạn có thể thay đổi hình dạng của điểm đánh dấu cho một trong các sơ đồ phân tán:
Bạn giữ hình dạng điểm đánh dấu mặc định cho dữ liệu đồ uống màu cam. Điểm đánh dấu mặc định là 0, đại diện cho một dấu chấm. Đối với dữ liệu thanh ngũ cốc, bạn đặt hình dạng điểm đánh dấu thành 8, đại diện cho một điểm đánh dấu kim cương. Bạn có thể tìm thấy danh sách tất cả các điểm đánh dấu bạn có thể sử dụng trong trang tài liệu trên các điểm đánh dấu. Dưới đây là hai ô phân tán được đặt chồng lên trên cùng một hình:Bây giờ bạn có thể phân biệt các điểm dữ liệu cho đồ uống màu cam với các điểm cho các thanh ngũ cốc. Nhưng có một vấn đề với cốt truyện cuối cùng bạn tạo ra mà bạn sẽ khám phá trong phần tiếp theo. Thay đổi tính minh bạchMột trong những điểm dữ liệu cho đồ uống màu cam đã biến mất. Cần có sáu đồ uống màu cam, nhưng chỉ có thể nhìn thấy năm điểm đánh dấu trong hình. Một trong những điểm dữ liệu thanh ngũ cốc là ẩn một điểm dữ liệu đồ uống màu cam. Bạn có thể khắc phục sự cố trực quan này bằng cách tạo các điểm dữ liệu trong suốt một phần bằng cách sử dụng giá trị alpha:
Bạn đã đặt giá trị 9 của cả hai bộ điểm đánh dấu thành 0, điều đó có nghĩa là chúng là semitransarent. Bây giờ bạn có thể thấy tất cả các điểm dữ liệu trong lô này, bao gồm cả những điểm trùng khớp:Bạn cũng đã thêm một tiêu đề và các nhãn khác vào cốt truyện để hoàn thành con số với nhiều thông tin hơn về những gì mà được hiển thị. Tùy chỉnh Colormap và phong cáchTrong các sơ đồ phân tán mà bạn đã tạo ra cho đến nay, bạn đã sử dụng ba màu để thể hiện hàm lượng đường thấp, trung bình hoặc cao cho đồ uống và thanh ngũ cốc. Bây giờ, bạn sẽ thay đổi điều này để màu trực tiếp đại diện cho hàm lượng đường thực tế của các mặt hàng. Trước tiên bạn cần phải tái cấu trúc các biến 1 và 2 để chúng đại diện cho giá trị nội dung đường thay vì chỉ các giá trị màu RGB:
Đây là các danh sách hiện có phần trăm của lượng đường được khuyến nghị hàng ngày trong mỗi mặt hàng. Phần còn lại của mã vẫn giữ nguyên, nhưng giờ đây bạn có thể chọn colormap để sử dụng. Bản đồ này giá trị thành màu: 0Màu sắc của các điểm đánh dấu hiện dựa trên quy mô liên tục và bạn cũng đã hiển thị thanh màu hoạt động như một huyền thoại cho màu sắc của các điểm đánh dấu. Ở đây, âm mưu phân tán kết quả:colorbar that acts as a legend for the color of the markers. Here’s the resulting scatter plot: Tất cả các ô mà bạn đã vẽ cho đến nay đã được hiển thị theo kiểu matplotlib gốc. Bạn có thể thay đổi kiểu này bằng cách sử dụng một trong một số tùy chọn. Bạn có thể hiển thị các kiểu có sẵn bằng lệnh sau: >>> 1Bây giờ bạn có thể thay đổi kiểu cốt truyện khi sử dụng matplotlib bằng cách sử dụng cuộc gọi chức năng sau khi gọi 3: 2Điều này thay đổi phong cách của Seaborn, một gói trực quan của bên thứ ba khác. Bạn có thể thấy phong cách khác nhau bằng cách vẽ sơ đồ biểu đồ phân tán cuối cùng mà bạn đã hiển thị ở trên bằng cách sử dụng phong cách Seaborn: Bạn có thể đọc thêm về việc tùy chỉnh các lô trong matplotlib, và cũng có những hướng dẫn tiếp theo trên các trang tài liệu matplotlib. Sử dụng 3 để tạo các sơ đồ phân tán cho phép bạn hiển thị nhiều hơn hai biến. Dưới đây là các biến được thể hiện trong ví dụ này:
Khả năng thể hiện nhiều hơn hai biến làm cho 3 trở thành một công cụ rất mạnh mẽ và linh hoạt.Khám phá ________ 76 () 3 cung cấp sự linh hoạt hơn nữa trong việc tùy chỉnh các sơ đồ phân tán. Trong phần này, bạn sẽ khám phá cách che dấu dữ liệu bằng các mảng numpy và phân tán các sơ đồ thông qua một ví dụ. Trong ví dụ này, bạn sẽ tạo ra các điểm dữ liệu ngẫu nhiên và sau đó tách chúng thành hai vùng riêng biệt trong cùng một biểu đồ phân tán.Một người đi lại, người rất quan tâm đến việc thu thập dữ liệu đã đối chiếu thời gian đến xe buýt tại trạm xe buýt địa phương của cô trong khoảng thời gian sáu tháng. Thời gian đến thời khóa Cốt truyện này cho thấy khả năng tương đối của một chiếc xe buýt đến mỗi phút trong vòng một giờ. Phân phối xác suất này có thể được biểu diễn bằng Numpy và 8: 3Bạn đã tạo ra hai phân phối bình thường tập trung vào 9 và 0 phút qua giờ và tổng hợp chúng. Bạn đặt thời gian đến có khả năng nhất thành giá trị 1 bằng cách chia cho giá trị tối đa.Bây giờ bạn có thể mô phỏng thời gian đến bus bằng cách sử dụng phân phối này. Để làm điều này, bạn có thể tạo thời gian ngẫu nhiên và xác suất tương đối ngẫu nhiên bằng mô-đun 2 tích hợp. Trong mã bên dưới, bạn cũng sẽ sử dụng danh sách toàn diện: 4Bạn đã mô phỏng 3 đến xe buýt, mà bạn có thể hình dung với biểu đồ phân tán sau:Cốt truyện của bạn sẽ trông khác nhau vì dữ liệu bạn tạo là ngẫu nhiên. Tuy nhiên, không phải tất cả các điểm này có khả năng gần với thực tế mà người đi lại quan sát được từ dữ liệu cô thu thập và phân tích. Bạn có thể vẽ sơ đồ phân phối mà cô ấy thu được từ dữ liệu với các xe buýt được mô phỏng: 5Điều này cho đầu ra sau: Để giữ cho mô phỏng thực tế, bạn cần đảm bảo rằng các bus đến ngẫu nhiên khớp với dữ liệu và phân phối thu được từ các dữ liệu đó. Bạn có thể lọc các điểm được tạo ngẫu nhiên bằng cách chỉ giữ các điểm nằm trong phân phối xác suất. Bạn có thể đạt được điều này bằng cách tạo mặt nạ cho biểu đồ phân tán:mask for the scatter plot: 6Các biến 4 và 5 là các mảng không có chứa các giá trị boolean dựa trên việc các khả năng được tạo ngẫu nhiên giảm trên hay dưới phân phối 0. Sau đó, bạn vẽ hai sơ đồ phân tán riêng biệt, một với các điểm nằm trong phân phối và một điểm khác cho các điểm nằm ngoài phân phối. Các điểm dữ liệu nằm trên phân phối không phải là đại diện cho dữ liệu thực:Bạn đã phân đoạn các điểm dữ liệu từ biểu đồ phân tán ban đầu dựa trên việc liệu chúng có nằm trong phân phối và sử dụng một màu và điểm đánh dấu khác để xác định hai bộ dữ liệu hay không. Xem lại các tham số đầu vào chínhBạn đã học về các tham số đầu vào chính để tạo các sơ đồ phân tán trong các phần trên. Dưới đây, một bản tóm tắt ngắn gọn về các điểm chính cần nhớ về các tham số đầu vào chính:
Đây không phải là các tham số đầu vào duy nhất có sẵn với 3. Bạn có thể truy cập danh sách đầy đủ các tham số đầu vào từ tài liệu.Sự kết luậnBây giờ bạn đã biết cách tạo và tùy chỉnh các sơ đồ phân tán bằng cách sử dụng 3, bạn đã sẵn sàng để bắt đầu thực hành với các bộ dữ liệu và ví dụ của riêng bạn. Chức năng đa năng này cung cấp cho bạn khả năng khám phá dữ liệu của bạn và trình bày những phát hiện của bạn một cách rõ ràng.Trong hướng dẫn này, bạn đã học được cách:
Bạn có thể tận dụng tối đa trực quan hóa bằng cách sử dụng 3 bằng cách tìm hiểu thêm về tất cả các tính năng trong matplotlib và xử lý dữ liệu bằng cách sử dụng Numpy.Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng plt.scatter () để trực quan hóa dữ liệu trong Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using plt.scatter() to Visualize Data in Python Chức năng nào sẽ tạo ra sơ đồ phân tán trong Python?Matplotlib có chức năng tích hợp để tạo các biểu đồ phân tán được gọi là scatter ().scatter() .
Việc sử dụng phương thức scatter () trong python *là gì?Chức năng phân tán () trong matplotlib được sử dụng để tạo ra một biểu đồ phân tán.Để hiểu thêm, mô -đun PyPlot có hàm gọi là scatter (), trong số nhiều chức năng khác, giúp tạo hoặc vẽ một biểu đồ phân tán.to create a scatter plot. For further understanding, the pyplot module has a function called scatter() , among many other functions, which helps to create or draw a scatter plot. |