Bạn sẽ muốn sử dụng FuncAnimation
. Thật không may, biểu đồ hình tròn không có chức năng cập nhật; Mặc dù có thể cập nhật các nêm với dữ liệu mới, nhưng điều này có vẻ khá cồng kềnh. Do đó, có thể dễ dàng hơn để xóa các trục trong mỗi bước và vẽ một biểu đồ hình tròn mới cho nó.
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'limegreen',
'red', 'navy', 'blue', 'magenta', 'crimson']
explode = [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, .01]
labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
nums = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
fig, ax = plt.subplots[]
def update[num]:
ax.clear[]
ax.axis['equal']
str_num = str[num]
for x in range[10]:
nums[x] += str_num.count[str[x]]
ax.pie[nums, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140]
ax.set_title[str_num]
ani = FuncAnimation[fig, update, frames=range[100], repeat=False]
plt.show[]
Ngày 10 tháng 1 năm 2021 tháng 14, 2021
Giới thiệu
Nếu bạn đang làm việc như một nhà phân tích dữ liệu hoặc nhà khoa học dữ liệu trong một thời gian, bạn có thể đã biết cách sử dụng matplotlib để trực quan hóa và trình bày dữ liệu trong các biểu đồ khác nhau. Thư viện Matplotlib cung cấp một mô -đun hoạt hình để tạo biểu đồ động để làm cho dữ liệu của bạn hấp dẫn hơn, tuy nhiên bạn vẫn cần một vài bước để định dạng dữ liệu của bạn và khởi tạo và cập nhật dữ liệu vào bảng xếp hạng. Trong bài viết này, tôi sẽ chứng minh cho bạn một thư viện Python khác-Pandas-ALIVE cho phép bạn tạo biểu đồ hoạt hình trực tiếp từ dữ liệu Pandas mà không cần chuyển đổi định dạng nào.
Điều kiện tiên quyết
Bạn có thể cài đặt thư viện này qua lệnh PIP như sau đây nếu bạn chưa có nó trong môi trường làm việc của mình:
Nó cũng sẽ cài đặt các phụ thuộc của nó như gấu trúc, gối và numpy, v.v.
Để trình diễn các ví dụ sau này của chúng tôi, hãy để lấy một số dữ liệu covid-19 mẫu từ Internet, bạn có thể tải xuống từ đây.
Trước khi bắt đầu, chúng tôi sẽ nhập tất cả các mô -đun cần thiết và thực hiện xem trước dữ liệu mẫu của chúng tôi:
import pandas as pd import pandas-alive df_covid = pd.read_excel["covid-19 sample data.xlsx"]
Dữ liệu chúng tôi sẽ làm việc sẽ là một cái gì đó tương tự như dưới đây :
Bây giờ với tất cả đã sẵn sàng, hãy để đi sâu vào các ví dụ mã.
Tạo cuộc đua biểu đồ thanh hoạt hình
Biểu đồ thanh là cách đơn giản nhất để trình bày dữ liệu, nó có thể được vẽ theo cách ngang hoặc dọc. Hãy để một định dạng nhỏ trên dữ liệu của chúng tôi để chúng tôi có thể sử dụng ngày làm trục ngang hoặc dọc để trình bày dữ liệu.
df_covid = df_covid.pivot[index="date", columns="location", values="total_cases"].fillna[0]
Để tạo biểu đồ thanh hoạt hình theo chiều ngang, bạn chỉ cần gọi Plot_animated theo bên dưới:plot_animated as per below:
df_covid.plot_animated["covid-19-h-bar.gif", period_fmt="%Y-%m", title="Covid-19 Cases"]
Hàm Plot_animated có các tham số mặc định Kiểu = Race Race và định hướng = Hồi Hv, do đó gif đầu ra sẽ được tạo theo dưới đây:plot_animated function has default parameters kind=”race” and orientation = “h”, hence the output gif would be generated as per below:
Bạn có thể thay đổi các giá trị mặc định của hai tham số này để tạo ra một cuộc đua biểu đồ thanh dọc:
df_covid.plot_animated["covid-19-v-bar.gif", period_fmt="%Y-%m", title="Covid-19 Cases", orientation='v']
Biểu đồ đầu ra sẽ là một cái gì đó tương tự như dưới đây:
Tạo biểu đồ dòng hoạt hình
Để tạo biểu đồ dòng hoạt hình, bạn chỉ cần thay đổi loại tham số = dòng dòng theo cách dưới đây:
df_covid.plot_animated["covid-19-line.gif", title="Covid-19 Cases", kind='line', period_fmt="%Y-%m", period_label={ 'x':0.25, 'y':0.9, 'family': 'sans-serif', 'color': 'darkred' }]
Có một số tham số khác, chẳng hạn như intion_label để kiểm soát định dạng của nhãn hoặc n_visible để ràng buộc có bao nhiêu bản ghi được hiển thị trên biểu đồ. Biểu đồ đầu ra sẽ theo phần dưới đây:period_label to control the format of the label, or n_visible to constrain how many records to be shown on the chart. The output chart would be as per the below:
Tạo biểu đồ hình tròn hoạt hình
Tương tự như các biểu đồ khác, bạn có thể tạo biểu đồ hình tròn đơn giản với các tham số bên dưới:
df_covid.plot_animated[filename='covid-19-pie-chart.gif', kind="pie", rotatelabels=True, tick_label_size=5, dpi=300, period_fmt="%Y-%m", ]
Bạn cũng có thể sử dụng các tham số Axes.pie khác để xác định hành vi biểu đồ hình tròn. Đầu ra từ mã trên sẽ là:
Tạo biểu đồ phân tán
Tạo biểu đồ phân tán hoặc biểu đồ bong bóng hơi phức tạp so với các biểu đồ khác, nhưng đối với dữ liệu mẫu của chúng tôi, việc hình dung nó trong loại biểu đồ này không có ý nghĩa gì nhiều. Ví dụ.
df_covid.plot_animated[filename='covid-19-scatter-chart.gif', kind="scatter", period_label={'x':0.05,'y':0.9}, steps_per_period=5 ]
Bạn sẽ thấy đầu ra tương tự như biểu đồ dòng:
Sự kết luận
Pandas-Alive cung cấp các cách rất thuận tiện để tạo ra tất cả các loại biểu đồ hoạt hình từ khung dữ liệu gấu trúc với sự hỗ trợ cơ bản từ thư viện matplotlib. Nó chấp nhận hầu hết các tham số bạn đã sử dụng trong matplotlib, vì vậy bạn không phải học rất nhiều điều mới trước khi áp dụng nó cho biểu đồ của mình.
Có nhiều tính năng khác ngoài cơ sở tôi đã đề cập ở trên, chẳng hạn như cung cấp các số liệu tùy chỉnh, tạo biểu đồ không gian địa lý hoặc kết hợp nhiều biểu đồ hoạt hình trong một chế độ xem. Bạn có thể kiểm tra thêm các ví dụ từ trang dự án của nó.
Bài viết bằng cách sử dụng thẻ trong pythongif trong pythonpandas-alive sốnganimated charts in pythongif in pythonpandas-alive