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ả

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ả

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ả

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ả

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ả
