Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python

Python cung cấp nhiều thư viện dễ dùng cho trực quan hóa dữ liệu. Điểm tốt là các thư viện này hoạt động với cả tập dữ liệu nhỏ và lớn.

Một số thư viện Python phổ biến nhất cho trực quan hóa dữ liệu:

  • Matplotlib
  • Pandas
  • Plotly
  • Seaborn

Dưới đây chúng ta sẽ vẽ các loại biểu đồ trực quan hóa khác nhau cho một tập dữ liệu cố định để phân tích tốt hơn.

Chúng ta sẽ phân tích tập dữ liệu sau để trực quan hóa qua các biểu đồ:

Quốc gia/Khu vực Năm Biến thể Giá trị
Ấn Độ 2019 Trung bình 1368737.513
Ấn Độ 2019 Cao 1378419.072
Ấn Độ 2019 Thấp 1359043.965
Ấn Độ 2019 H Geburth rate không đổi 1373707.838
Ấn Độ 2019 Thay thế tức thì 1366687.871
Ấn Độ 2019 Không di cư 1370868.782
Ấn Độ 2019 Tử vong không đổi 1366282.778
Ấn Độ 2019 Không thay đổi 1371221.64
Ấn Độ 2019 Động lực 1367400.614

Biểu đồ cơ bản

Tạo một số biểu đồ cơ bản: biểu đồ đường, biểu đồ phân tán và histogram.

Biểu đồ đường (Line Plots)

Biểu đồ đường là đồ thị vẽ đường để chỉ ra mối quan hệ giữa một tập giá trị x và y cụ thể.

import matplotlib.pyplot as plt
Year = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
India_Population = [1173108018, 1189172906, 1205073612, 1220800359, 1266344631, 1309053980, 1324171354, 1339180127, 1354051854, 1368737513]
plt.plot(Year, India_Population)
plt.show()

Kết quả

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python

Biểu đồ phân tán (Scatter Plots)

Thay vào đó, bạn có thể muốn vẽ các lượng với 2 vị trí làm điểm dữ liệu.

Xét cùng dữ liệu như biểu đồ đường, để tạo biểu đồ phân tán chỉ cần sửa một dòng:

plt.plot(Year, India_Population, 'o')

Kết quả

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python

Histogram

Histogram thường dùng trong ứng dụng khoa học và rất có thể bạn sẽ cần vẽ chúng. Chúng rất hữu ích để vẽ phân phối.

import pandas as pd
import matplotlib.pyplot as plt

data = [
    ['India', 2019, 'Medium', 1368737.513],
    ['India', 2019, 'High', 1378419.072],
    ['India', 2019, 'Low', 1359043.965],
    ['India', 2019, 'Constant fertility', 1373707.838],
    ['India', 2019, 'Instant replacement', 1366687.871],
    ['India', 2019, 'Zero migration', 1370868.782],
    ['India', 2019, 'Constant mortality', 1366282.778],
    ['India', 2019, 'No change', 1371221.64],
    ['India', 2019, 'Momentum', 1367400.614],
]

df = pd.DataFrame(data, columns=['Country or Area', 'Year(s)', 'Variant', 'Value'])
df.hist()
plt.show()

Kết quả

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python

Biểu đồ tròn (Pie Charts)

import numpy as np
import matplotlib.pyplot as plt

n = 25
Z = np.ones(n)
Z[-1] *= 2.5
plt.axes([0.05, 0.05, 0.95, 0.95])
plt.pie(Z, explode=Z*.05, colors=['%f' % (i/float(n)) for i in range(n)], wedgeprops={"linewidth": 1, "edgecolor": "green"})
plt.gca().set_aspect('equal')
plt.xticks([]), plt.yticks([])
plt.show()

Kết quả

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python

Biểu đồ cực (Polar plot)

Mã:

import numpy as np
import matplotlib.pyplot as plt

ax = plt.axes([0.5, 0.05, 0.95, 0.95], polar=True)
N = 25
theta = np.arange(0.0, 2.5*np.pi, 2.5*np.pi/N)
radii = 10*np.random.rand(N)
width = np.pi/4*np.random.rand(N)
bars = plt.bar(theta, radii, width=width, bottom=0.0)
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.jet(r/10.))
    bar.set_alpha(0.5)
ax.set_xticklabels([])
ax.set_yticklabels([])
plt.show()

Kết quả

Trực quan hóa dữ liệu với các loại biểu đồ khác nhau trong Python