Thứ hai, 07/11/2016 | 00:00 GMT+7

Cách vẽ dữ liệu trong Python 3 bằng matplotlib

Python rất tốt để xử lý dữ liệu. Thường thì một tập dữ liệu sẽ bao gồm nhiều biến và nhiều trường hợp, khiến bạn khó có thể hiểu được điều gì đang xảy ra. Trực quan hóa dữ liệu là một cách hữu ích để giúp bạn xác định các mẫu trong dữ liệu của bạn .

Ví dụ: giả sử bạn là một đại lý bất động sản và bạn đang cố gắng hiểu mối quan hệ giữa tuổi của một ngôi nhà và giá bán của nó. Nếu dữ liệu bao gồm 1 khối gồm 5 ngôi nhà, sẽ không quá khó để biết được điều gì đang xảy ra. Tuy nhiên, giả sử bạn muốn sử dụng dữ liệu từ toàn bộ thị trấn gồm 500 ngôi nhà. Sau đó, nó sẽ trở nên khá khó hiểu làm thế nào tuổi tác ảnh hưởng đến giá cả. Hình dung dữ liệu, bằng cách vẽ biểu đồ giá bán so với độ tuổi, chắc chắn có thể làm sáng tỏ mối quan hệ tồn tại giữa hai yếu tố này.

Trực quan là một cách nhanh chóng và dễ dàng để truyền đạt các khái niệm một cách phổ biến, đặc biệt là đối với những người không quen thuộc với dữ liệu . Khi nào ta làm việc với dữ liệu, hình dung thường là một phần cần thiết của phân tích.

Ta sẽ sử dụng thư viện vẽ đồ thị 2D, matplotlib , được viết bởi John D. Hunter ban đầu và kể từ đó đã trở thành một dự án cộng đồng phát triển nguồn mở rất tích cực. Nó cho phép bạn tạo các biểu đồ đường chất lượng cao, biểu đồ phân tán, biểu đồ, biểu đồ thanh, v.v. Mỗi biểu đồ trình bày dữ liệu theo một cách khác nhau và việc thử các loại ô khác nhau thường rất hữu ích trước khi quyết định ô thông tin nhất cho dữ liệu . Nên nhớ rằng hình dung là sự pha trộn giữa nghệ thuật và khoa học.

Với tầm quan trọng của trực quan, hướng dẫn này sẽ mô tả cách vẽ biểu đồ dữ liệu trong Python bằng cách sử dụng matplotlib. Ta sẽ tiến hành tạo một biểu đồ phân tán bằng cách sử dụng một tập hợp dữ liệu nhỏ, thêm thông tin như tiêu đề và truyền thuyết vào các ô và tùy chỉnh các ô bằng cách thay đổi giao diện của các điểm trên ô.

Khi bạn hoàn thành hướng dẫn này, bạn có thể vẽ biểu đồ dữ liệu bằng Python!

Yêu cầu

Đối với hướng dẫn này, bạn nên cài đặt Python 3, cũng như cài đặt môi trường lập trình local trên máy tính của bạn . Nếu không đúng như vậy, bạn có thể cài đặt theo hướng dẫn cài đặt và cài đặt thích hợp cho hệ điều hành của bạn .

Bước 1 - Nhập matplotlib

Trước khi có thể bắt đầu làm việc bằng Python, hãy kiểm tra kỹ xem module matplotlib đã được cài đặt chưa. Trong dòng lệnh, kiểm tra matplotlib bằng cách chạy lệnh sau:

  • python -c "import matplotlib"

Nếu matplotlib được cài đặt, lệnh này sẽ hoàn tất mà không có lỗi và ta đã sẵn sàng. Nếu không, bạn sẽ nhận được thông báo lỗi:

Output
  • Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'

Nếu bạn nhận được thông báo lỗi, hãy download thư viện bằng cách sử dụng pip:

  • pip install matplotlib

Bây giờ matplotlib đã được cài đặt, ta có thể nhập nó bằng Python. Đầu tiên, hãy tạo tập lệnh mà ta sẽ làm việc trong hướng dẫn này: scatter.py . Sau đó, trong tập lệnh của ta , hãy nhập matplotlib. Vì ta sẽ chỉ làm việc với module vẽ đồ thị (pyplot), hãy chỉ định điều đó khi ta nhập nó.

scatter.py
import matplotlib.pyplot as plt 

Ta chỉ định module mà ta muốn nhập bằng cách thêm .pyplot vào cuối matplotlib . Để giúp dễ dàng tham khảo module trong tập lệnh của ta , ta viết tắt nó là plt . Bây giờ, ta có thể chuyển sang tạo và vẽ dữ liệu của bạn .

Bước 2 - Tạo điểm dữ liệu cho lô đất

Trong tập lệnh Python của ta , hãy tạo một số dữ liệu để làm việc. Ta đang làm việc ở chế độ 2D, vì vậy ta cần tọa độ X và Y cho mỗi điểm dữ liệu của ta .

Để hiểu rõ nhất cách matplotlib hoạt động, ta sẽ liên kết dữ liệu của bạn với một tình huống thực tế có thể xảy ra. Giả sử ta là chủ một cửa hàng cà phê và ta quan tâm đến mối quan hệ giữa thời tiết trung bình trong năm và tổng số lần mua cà phê đá. Biến X của ta sẽ là tổng số cà phê đá được bán mỗi tháng và biến Y của ta sẽ là nhiệt độ trung bình tính theo Fahrenheit cho mỗi tháng.

Trong tập lệnh Python của ta , ta sẽ tạo hai biến danh sách: X (tổng số cà phê đá đã bán) và Y (nhiệt độ trung bình). Mỗi mục trong danh sách tương ứng của ta sẽ đại diện cho dữ liệu từ mỗi tháng (tháng 1 đến tháng 12). Ví dụ, vào tháng Giêng, nhiệt độ trung bình là 32 độ F và cửa hàng cà phê đã bán được 590 cốc cà phê đá.

scatter.py
import matplotlib.pyplot as plt  X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48] 

Bây giờ ta đã có dữ liệu của bạn , ta có thể bắt đầu lập kế hoạch.

Bước 3 - Lập sơ đồ dữ liệu

Biểu đồ phân tán rất tốt để xác định mối quan hệ giữa hai biến, vì vậy ta sẽ sử dụng loại biểu đồ này cho ví dụ của ta . Để tạo biểu đồ phân tán bằng matplotlib, ta sẽ sử dụng hàm scatter() . Hàm yêu cầu hai đối số, đại diện cho các giá trị tọa độ X và Y.

scatter.py
import matplotlib.pyplot as plt  X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48]  plt.scatter(X,Y) plt.show() 

Mỗi khi ta tạo một cốt truyện, ta cũng phải xác định rằng ta muốn nó hiển thị bằng cách sử dụng plt.show() .

Trước khi tiếp tục, hãy kiểm tra xem tập lệnh của ta có hoạt động không. Lưu tập lệnh và chạy nó qua dòng lệnh:

  • python scatter.py

Nếu mọi thứ diễn ra tốt đẹp, một cửa sổ lẽ ra đã chạy hiển thị cốt truyện, như sau:

Biểu đồ Alt Scatter

Cửa sổ này rất tốt để xem dữ liệu; nó tương tác và bao gồm một số chức năng, chẳng hạn như di chuột để hiển thị nhãn và tọa độ, phóng to hoặc thu nhỏ và lưu.

Bước 4 - Thêm Tiêu đề và Nhãn

Bây giờ ta biết kịch bản của bạn đang hoạt động tốt, ta có thể bắt đầu thêm thông tin vào cốt truyện của bạn . Để làm rõ dữ liệu của ta đại diện cho điều gì, hãy bao gồm tiêu đề cũng như nhãn cho mỗi trục.

Ta sẽ bắt đầu bằng cách thêm một tiêu đề. Ta thêm tiêu đề trước dòng plt.show() trong tập lệnh của ta .

scatter.py
import matplotlib.pyplot as plt  X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48]  plt.scatter(X,Y)  plt.title('Relationship Between Temperature and Iced Coffee Sales')  plt.show() 

Tiếp theo, thêm nhãn cho các trục ngay bên dưới dòng plt.title :

scatter.py
... plt.xlabel('Cups of Iced Coffee Sold') plt.ylabel('Temperature in Fahrenheit') ... 

Nếu ta lưu tập lệnh của bạn và chạy lại, bây giờ ta sẽ có một cốt truyện được cập nhật nhiều thông tin hơn. Cốt truyện cập nhật của ta sẽ trông giống như sau:

Biểu đồ Alt Scatter với tiêu đề và nhãn X / Y.

Bước 5 - Tùy chỉnh một lô

Mỗi tập dữ liệu mà ta làm việc sẽ là duy nhất và điều quan trọng là có thể tùy chỉnh cách ta muốn hiển thị thông tin của bạn . Hãy nhớ hình dung cũng là một nghệ thuật, vì vậy hãy sáng tạo với nó! matplotlib bao gồm nhiều tính năng tùy chỉnh, chẳng hạn như các màu khác nhau, biểu tượng điểm và định cỡ. Tùy thuộc vào nhu cầu của ta , ta có thể cần thử nghiệm với các quy mô khác nhau, sử dụng các phạm vi khác nhau cho các trục của ta . Ta có thể thay đổi các tham số mặc định bằng cách chỉ định các phạm vi mới cho các trục, như sau:

scatter.py
import matplotlib.pyplot as plt  X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48]  plt.scatter(X,Y)  plt.xlim(0,1000) plt.ylim(0,100)  plt.title('Relationship Between Temperature and Iced Coffee Sales')  plt.show() ... 

Các điểm từ cốt truyện ban đầu trông hơi nhỏ và màu xanh lam có thể không phải là màu ta muốn. Có lẽ ta muốn hình tam giác thay vì hình tròn cho các điểm của ta . Nếu ta muốn thay đổi màu sắc / kích thước / hình dạng thực tế của các điểm, ta phải thực hiện những thay đổi này trong lệnh gọi plt.scatter() ban đầu. Ta sẽ thay đổi các thông số sau:

  • s : kích thước của điểm, mặc định = 20
  • c : màu, dãy hoặc dãy màu, default = 'b'
  • marker : ký hiệu điểm, mặc định = 'o'

Các điểm đánh dấu có thể có bao gồm một số hình dạng khác nhau, chẳng hạn như kim cương, hình lục giác, ngôi sao, v.v. Các lựa chọn màu sắc bao gồm, nhưng không giới hạn ở xanh lam, xanh lục, đỏ và đỏ tươi. Nó cũng có thể cung cấp một chuỗi hex HTML cho màu sắc. Xem tài liệu của matplotlib để biết danh sách toàn diện về các điểm đánh dấumàu sắc có thể có.

Để làm cho âm mưu của ta dễ đọc hơn, hãy nhân ba kích thước của các điểm ( s=60 ), thay đổi màu thành màu đỏ ( c='r' ) và thay đổi biểu tượng thành hình tam giác ( marker='^' ). Ta sẽ sửa đổi hàm plt.scatter() :

plt.scatter(X, Y, s=60, c='red', marker='^') 

Trước khi chạy tập lệnh đã cập nhật, ta có thể kiểm tra lại xem mã của ta có đúng không. Tập lệnh cập nhật cho cốt truyện tùy chỉnh sẽ trông giống như sau:

scatter.py
import matplotlib.pyplot as plt   X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48]  #scatter plot plt.scatter(X, Y, s=60, c='red', marker='^')  #change axes ranges plt.xlim(0,1000) plt.ylim(0,100)  #add title plt.title('Relationship Between Temperature and Iced Coffee Sales')  #add x and y labels plt.xlabel('Cups of Iced Coffee Sold') plt.ylabel('Temperature in Fahrenheit')  #show plot plt.show() 

Đừng quên lưu tập lệnh của bạn trước khi chuyển sang Bước 6.

Bước 6 - Lưu lô đất

Bây giờ ta đã hoàn thành mã của bạn , hãy chạy nó để xem cốt truyện tùy chỉnh mới của ta .

  • python scatter.py

Một cửa sổ sẽ mở ra hiển thị âm mưu của ta :

Biểu đồ phân tán thay thế Cuối cùng với tiêu đề và nhãn X / Y và được tùy chỉnh với các điểm hình tam giác, màu đỏ, lớn hơn.

Tiếp theo, lưu cốt truyện bằng cách nhấp vào nút lưu, là biểu tượng cái đĩa nằm trên thanh công cụ dưới cùng. Lưu ý hình ảnh sẽ được lưu dưới dạng PNG thay vì biểu đồ tương tác. Đến đây bạn đã có âm mưu phân tán tùy chỉnh của riêng mình, xin chúc mừng!

Kết luận

Trong hướng dẫn này, bạn đã học cách vẽ biểu đồ dữ liệu bằng matplotlib trong Python. Đến đây bạn có thể trực quan hóa dữ liệu và tùy chỉnh các lô.

Để tiếp tục thực hành với matplotlib, bạn có thể làm theo hướng dẫn của ta về “ Cách vẽ biểu đồ tần suất từ sử dụng matplotlib với Python 3 ”.


Tags:

Các tin liên quan

Hiểu danh sách trong Python 3
2016-11-02
Cách làm Toán bằng Python 3 với Toán tử
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Cách sử dụng bộ định dạng chuỗi trong Python 3
2016-10-14
Cách xử lý tệp văn bản thuần túy trong Python 3
2016-10-13
Cách sử dụng các biến trong Python 3
2016-10-12
Cách lập chỉ mục và cắt chuỗi trong Python 3
2016-09-28
Cách định dạng văn bản trong Python 3
2016-09-15