Mặc dù cách phổ biến nhất để biểu diễn dữ liệu phân loại là sử dụng biểu đồ thanh, nhưng có một số kiểu trực quan hóa khác phù hợp cho mục đích này. Tất cả đều có ưu và nhược điểm, cũng như giới hạn về khả năng ứng dụng của chúng.
Trong bài viết này, chúng tôi sẽ so sánh các biểu đồ như vậy hiển thị cùng một dữ liệu. các châu lục theo diện tích. Dữ liệu được lấy từ Wikipedia và được biểu thị bằng triệu km2, để tránh độ chính xác không cần thiết
import pandas as pd
dct = {'Oceania': 8.5, 'Europe': 10, 'Antarctica': 14.2, 'South America': 17.8,
'North America': 24.2, 'Africa': 30.4, 'Asia': 44.6}
continents = list[dct.keys[]]
populations = list[dct.values[]]
1. cốt truyện thanhHãy bắt đầu với cách hiển thị dữ liệu phân loại cổ điển nhất. một cốt truyện thanh thậm chí không cần giới thiệu
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
Hình ảnh của tác giả
Từ đồ thị trên ta thấy rõ sự phân cấp của các châu lục theo diện tích cả về định tính và định lượng. Không có thắc mắc. lô thanh hầu như không có bất kỳ khuyết điểm. Chúng đa mục đích, có khả năng tùy chỉnh cao, trực quan hấp dẫn, dễ diễn giải, quen thuộc với nhiều đối tượng và có thể được tạo bằng bất kỳ thư viện dataviz nào. Điều duy nhất chúng ta phải ghi nhớ khi tạo ra chúng là tuân theo các thông lệ tốt. sắp xếp dữ liệu, chọn màu thích hợp, hướng thanh, thêm chú thích, nhãn, sắp xếp lại, v.v.
2. cốt truyện gốcBiểu đồ gốc rất giống với biểu đồ thanh và thậm chí còn có lợi thế hơn biểu đồ thanh vì nó được đặc trưng bởi tỷ lệ mực dữ liệu tối đa và trông ít lộn xộn hơn. Để tạo biểu đồ gốc, chúng ta chỉ cần thư viện matplotlib. Đối với một biểu đồ gốc ngang [ô có đường cơ sở nằm ngang và các gốc thẳng đứng], chúng ta có thể sử dụng
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
8 kết hợp với import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
9 hoặc sử dụng trực tiếp hàm plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
0. Trong trường hợp đầu tiên, import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
8 tạo ra các gốc và import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
9 – các điểm kết thúc. Đối với biểu đồ gốc dọc [ô có đường cơ sở dọc và gốc nằm ngang], chúng ta không thể sử dụng hàm plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
0 nữa mà phải kết hợp giữa import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
3 và import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
9Hãy tạo một biểu đồ gốc dọc cho dữ liệu của chúng tôi
plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
Hình ảnh của tác giả
So với biểu đồ đầu tiên, chúng tôi chỉ thêm một dòng mã nữa và trong trường hợp biểu đồ gốc nằm ngang, thậm chí sẽ không cần thiết nếu sử dụng trực tiếp hàm ________ 30. Biểu đồ kết quả hiển thị cùng một thông tin nhưng trông sạch sẽ và thanh lịch hơn so với biểu đồ thanh cổ điển. Điều này trở nên đặc biệt có giá trị khi có nhiều danh mục để trực quan hóa hoặc khi giá trị của chúng có thể so sánh được
3. Biểu đồ trònBiểu đồ hình tròn hoặc biểu đồ vành khuyên phiên bản của nó [biểu đồ hình tròn có phần lõi trống] là một loại hình trực quan nổi tiếng khác được sử dụng rộng rãi để hiển thị tỷ lệ của các thành phần riêng lẻ trong tổng thể. Nó có thể được tạo và tùy chỉnh dễ dàng với nhiều thư viện dataviz. Dù rất nổi tiếng nhưng đây cũng là một trong những thể loại cốt truyện bị chỉ trích nhiều nhất. Những lý do chính cho nó là
- Biểu đồ hình tròn dựa trên các góc chứ không phải độ dài nên khó diễn giải rõ ràng hơn
- Trong trường hợp khi có nhiều danh mục hoặc khi tỷ lệ của chúng tương tự nhau [sẽ là ứng cử viên lý tưởng để tạo biểu đồ gốc], biểu đồ hình tròn thực tế trở nên vô dụng để tìm ra thứ tự của tỷ lệ hoặc thậm chí tìm giá trị lớn nhất/nhỏ nhất
Hãy xem biểu đồ hình tròn có hoạt động tốt trong trường hợp của chúng ta không
plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
Hình ảnh của tác giả
Vì dữ liệu của chúng tôi chỉ bao gồm 7 danh mục, với các giá trị được sắp xếp ban đầu và khá khác nhau giữa chúng, và cũng bởi vì chúng tôi đã thêm tỷ lệ phần trăm tổng diện tích đất cho mỗi lục địa, nên biểu đồ kết quả có vẻ nhiều thông tin, dễ hiểu và không gặp phải 2
Một điểm yếu không quá rõ ràng của biểu đồ hình tròn đối với biểu đồ thanh và gốc là sự phong phú về màu sắc. Một cách tiếp cận khác là lấp đầy các nêm bằng một mẫu, nhưng trong cả hai trường hợp, nó dẫn đến tỷ lệ mực dữ liệu thấp hơn. Tuy nhiên, đây là một vấn đề điển hình của tất cả các lô “màu mè”, như chúng ta sẽ sớm thấy
Một điều đáng nhấn mạnh nữa là loại biểu đồ này có chức năng hạn chế hơn so với hai loại trước. Thật vậy, nó chỉ có thể được sử dụng để hình dung tỷ lệ của các thành phần trong tổng thể, trong khi đối với biểu đồ thanh và thân, các thanh/thân không được coi là cấu thành toàn bộ. Ví dụ: chúng ta có thể tạo biểu đồ thanh cho TOP10 quốc gia theo dân số. Việc tạo một biểu đồ hình tròn cho dữ liệu này, về mặt kỹ thuật có thể, sẽ hơi bị lỗi vì tổng thể thực, trong trường hợp này, bao gồm nhiều yếu tố hơn [tất cả các quốc gia khác]
4. sơ đồ câyĐể tạo sơ đồ cây, chúng ta phải cài đặt và nhập thư viện squarify [
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
6]. Loại biểu đồ này tương tự như biểu đồ hình tròn ở chỗ nó cũng hiển thị tỷ lệ của các thành phần riêng lẻ trong tổng thể. Thay vì các hình nêm, nó sử dụng một tập hợp các hình chữ nhật, diện tích của chúng tỷ lệ thuận với các giá trị của các danh mục tương ứng. Điều này tạo ra sự khác biệt và thực sự là một lợi thế. so sánh tinh thần của các khu vực chắc chắn dễ dàng hơn nhiều so với các góc. Ngoài ra, không giống như biểu đồ hình tròn, nó vẫn hoạt động tốt trong trường hợp chúng ta có nhiều danh mục để so sánh. Dưới đây là những điểm yếu và hạn chế mà sơ đồ cây có điểm chung với biểu đồ hình tròn- Nó không hoạt động tốt khi tỷ lệ của các danh mục tương tự nhau
- Nó không có trục, vì vậy chúng ta phải dựa vào sự so sánh trực quan của các hình chữ nhật hoặc cộng các giá trị trên mỗi hình chữ nhật
- Nó ngụ ý sử dụng nhiều màu sắc có thể làm cho biểu đồ kết quả trông hơi choáng ngợp
- Các thành phần của sơ đồ cây được cho là cấu thành toàn bộ
Bên cạnh đó, có một nhược điểm hoàn toàn dành riêng cho sơ đồ cây
- Các cách tùy chỉnh các hình ảnh trực quan như vậy khá hạn chế và không phải lúc nào cũng thân thiện với người dùng. Ví dụ: để điều chỉnh các thuộc tính văn bản nhãn [chẳng hạn như màu phông chữ hoặc kích thước], chúng ta không thể chuyển trực tiếp các đối số tương ứng mà chỉ thông qua từ điển
import matplotlib.pyplot as plt
7. Ngoài ra, tham số
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]import matplotlib.pyplot as plt
8 thêm khoảng cách giữa các hình chữ nhật chỉ có thể nhận các giá trị
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]import matplotlib.pyplot as plt
9 hoặc
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]plt.figure[figsize=[10,4]]
0 mà không có khả năng điều chỉnh độ rộng của khoảng cách
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
Chúng ta hãy xem sơ đồ cây cho các lục địa của chúng ta
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
0Hình ảnh của tác giả
Sơ đồ cây của chúng tôi trông hấp dẫn và sâu sắc, chúng tôi có thể theo dõi rõ ràng các lục địa từ lục địa lớn nhất đến lục địa nhỏ nhất nhìn cả trên hình chữ nhật và giá trị. Một lần nữa, điều này một phần là do chúng tôi chỉ có 7 danh mục, nhiều loại giá trị và thứ tự ban đầu. Tuy nhiên, có lẽ chúng ta có thể cân nhắc đặt các giá trị theo % thay vì theo giá trị tuyệt đối
Tham số cần thiết duy nhất cho sơ đồ cây là
plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
1, tất cả các tham số khác [bao gồm cả plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
2] là tùy chọn5. biểu đồ bánh quếĐể tạo biểu đồ bánh quế, chúng ta cần thư viện PyWaffle dựa trên matplotlib.
plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
3, sau đó nhập cả PyWaffle và matplotlib. Loại biểu đồ này tương tự như cả biểu đồ hình tròn và sơ đồ cây vì nó cũng minh họa tỷ lệ của các thành phần riêng lẻ trong tổng thể, với ưu điểm là nó còn hiển thị thêm số lượng đơn vị của từng thành phần. Tùy thuộc vào ngữ cảnh, theo "đơn vị", chúng tôi có thể có nghĩa là 1, 10, 100, v.v. các yếu tố của từng loại [thực sự, để hình dung tiếp theo, chúng tôi sẽ sử dụng đơn vị 1 triệu km2]. Mỗi tập hợp con [danh mục] được biểu thị bằng một khu vực trên biểu đồ bánh quế chứa đầy ô vuông. Giống như sơ đồ cây, diện tích của mỗi danh mục trên lưới tỷ lệ thuận với giá trị của nóBiểu đồ bánh quế hoạt động tốt nhất khi chúng ta có một tập hợp dữ liệu rời rạc tương đối nhỏ và quan tâm đến cấu trúc bên trong của các thành phần của nó. Tuy nhiên, điều quan trọng là phải ghi nhớ những hạn chế của loại biểu đồ này. Điểm yếu hoàn toàn liên quan đến biểu đồ bánh quế là số lượng đơn vị trong mỗi loại phải khá nhỏ. Một số hạn chế khác phổ biến với các loại trực quan hóa đã được đề cập
Với cả biểu đồ hình tròn và sơ đồ cây
- Nó không hoạt động tốt khi tỷ lệ của các danh mục tương tự nhau
- Nó không có trục nên chúng ta phải dựa vào so sánh trực quan các khu vực hoặc thêm chú thích tương ứng cho từng khu vực
- Nó có cùng một vấn đề với sự phong phú về màu sắc không thể tránh khỏi
- Các thành phần của biểu đồ bánh quế được cho là cấu thành toàn bộ
- Bạn nên sắp xếp dữ liệu để sử dụng làm đầu vào
Với một biểu đồ hình tròn
- Khi có nhiều danh mục được so sánh, biểu đồ bánh quế trở nên không hiệu quả
Với sơ đồ cây
- Các cách tùy chỉnh biểu đồ bánh quế không phải lúc nào cũng đơn giản và dễ hiểu bằng trực giác
Hãy xem liệu sử dụng biểu đồ bánh quế có phải là ý tưởng hay cho dữ liệu của chúng ta không
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
4Hình ảnh của tác giả
Biểu đồ trên trông hoàn toàn được tùy chỉnh và hiển thị các mẫu theo cách chính xác. Tuy nhiên, chúng ta phải thừa nhận rằng ở đây biểu đồ bánh quế không phải là lựa chọn đúng đắn. mặc dù chúng tôi có ít danh mục và mỗi danh mục bao gồm tương đối ít đơn vị, nhưng chúng tôi không cần thông tin chi tiết như vậy về cấu trúc bên trong của từng tập hợp con. Ngoài ra, "đơn vị" của chúng tôi trông hơi kỳ lạ. 1 triệu km2. 😮 Và chúng ta thậm chí không thể gọi nó là một giá trị rời rạc. Do đó, dữ liệu của chúng tôi không phù hợp với loại trực quan hóa này
Các tham số cần thiết cho biểu đồ bánh quế là
plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
4, plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
5 và plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
6 [hoặc plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
7]Một loại biểu đồ bánh quế cụ thể là biểu đồ chữ tượng hình sử dụng các biểu tượng thay vì hình vuông. Thông thường, các biểu tượng như vậy phải đơn giản nhưng có ý nghĩa đối với từng danh mục, ví dụ: biểu tượng ngôi sao để thể hiện sự tiến bộ trong các lĩnh vực khác nhau. Biểu đồ tượng hình có thể hiệu quả hơn để hiển thị dữ liệu phân loại khi chúng ta muốn chứng minh thông tin chi tiết theo cách hấp dẫn và có tác động hơn. Cả biểu đồ bánh quế và tượng hình đều đặc biệt hữu ích khi minh họa dữ liệu thống kê, xếp hạng, trạng thái tiến độ, v.v.
6. đám mây từCuối cùng, cách kỳ lạ nhất và gần như bất ngờ nhất để hiển thị dữ liệu phân loại là tạo một đám mây từ. Với mục đích này, chúng ta cần thư viện wordcloud [
plt.figure[figsize=[10,4]]
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
8]. Cách sử dụng truyền thống của nó là trực quan hóa dữ liệu văn bản, với kích thước của mỗi từ cho biết tần suất xuất hiện của nó để chúng ta có thể phân biệt những từ quan trọng nhất trong văn bản. Tuy nhiên, cũng có một ứng dụng ít được biết đến của đám mây từ. có dữ liệu với giá trị của một số thuộc tính được gán cho từng danh mục, chúng tôi có thể tạo một đám mây từ không dựa trên tần số từ mà dựa trên thuộc tính đó [trong trường hợp của chúng tôi là diện tích của mỗi lục địa]. Hơn nữa, sử dụng các đám mây từ theo cách này, chúng tôi dễ dàng tránh được nhiều vấn đề điển hình đã biết liên quan đến chúng. Thật vậy, không giống như những đám mây từ "bình thường"- Không cần chuẩn bị dữ liệu trước, xóa các từ dừng, v.v.
- Không có vấn đề với bối cảnh thiếu
- Vì số lượng danh mục thường tương đối ít nên chúng tôi có thể đảm bảo loại bỏ bất kỳ từ dọc nào [gán 1 cho tham số
plt.figure[figsize=[10,4]]
9] để cải thiện khả năng đọc biểu đồ. Ngoài ra, chúng tôi chắc chắn không cần sử dụng mặt nạ trong trường hợp này
plt.hlines[y=continents, xmin=0, xmax=populations, color='slateblue']
plt.plot[populations, continents, 'o', color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.xlim[0, None]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
Một số nhược điểm khác liên quan đến các loại mây từ vẫn còn tồn tại
- Một đám mây từ không cho phép xếp hạng rõ ràng ngay lập tức các từ
- Một đám mây từ thiếu một cách tiếp cận định lượng. không thể dịch kích thước phông chữ thành giá trị chính xác của thuộc tính quan tâm. Hơn nữa, trong trường hợp này, chúng ta thậm chí không thể cộng trực tiếp các giá trị trên biểu đồ
- Có một ảo ảnh quang học rằng tên dài hơn của các danh mục [đặc biệt là những danh mục có nhiều từ] hoặc những tên có phần tăng dần [như k, b, l] hoặc phần giảm dần [như j, q, g] có vẻ lớn hơn và do đó quan trọng hơn tên của
- Nếu chúng tôi sử dụng bản đồ màu matplotlib liên tục cho đám mây từ của mình [magma, spring, v.v. ], chúng ta nên nhớ rằng màu sắc cho từng danh mục sẽ được chọn ngẫu nhiên từ danh mục đó, không có bất kỳ màu sắc dần dần nào như một chỉ báo bổ sung tiềm năng cho thứ hạng danh mục
Một nhược điểm khác là điểm chung với biểu đồ hình tròn, sơ đồ cây và biểu đồ bánh quế. một đám mây từ không hiệu quả khi tỷ lệ của các danh mục tương tự nhau. Tuy nhiên, một đám mây từ có một số lợi thế đối với các loại trực quan hóa đó
- Sự phong phú của màu sắc là một vấn đề có thể giải quyết. có thể gán chức năng màu hoặc thậm chí tạo tất cả các từ có cùng màu
- Không nhất thiết các danh mục phải cấu thành toàn bộ
- Không cần sắp xếp dữ liệu trước
- Đám mây từ vẫn hữu ích để hiển thị nhiều danh mục hơn [so với biểu đồ hình tròn và bánh quế]
- Các đám mây từ có khả năng tùy biến cao
Hãy tạo một đám mây từ cho các lục địa của chúng ta để xem ưu và nhược điểm của nó trong hoạt động
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure[figsize=[10,4]]
plt.barh[continents, populations, color='slateblue']
plt.title['Continents by area', fontsize=27]
plt.xlabel['Area, mln km2', fontsize=19]
plt.xticks[fontsize=16]
plt.yticks[fontsize=16]
plt.tick_params[left=False]
sns.despine[left=True]
plt.show[]
1Hình ảnh của tác giả
Chúng tôi đã sẵn sàng cho một đám mây từ không đặc biệt tốt cho xếp hạng danh mục tinh thần hoặc phân tích định lượng. Bên cạnh đó, chúng ta không thấy nhiều người đi lên và đi xuống. Tuy nhiên, điều thực sự gây xao nhãng ở đây là sự hiện diện của các thể loại từ kép. Bắc Mỹ và Nam Mỹ. Do đó, chúng ta có thể kết luận rằng tốt hơn là chỉ sử dụng phương pháp này trong trường hợp danh mục một từ
Về mặt kỹ thuật, mặc dù tất cả các tham số của
plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
0 là tùy chọn trong trường hợp của chúng tôi, nhưng việc sử dụng plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
1 với một từ điển hoặc Sê-ri được truyền vào là điều cần thiết. Điều thú vị là nhiều tham số liên quan đến các đám mây từ "bình thường" trở nên vô dụng đối với các đám mây dựa trên thuộc tính, e. g. plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
2, plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
3, plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
4 và plt.figure[figsize=[7,7]]
plt.pie[populations, labels=continents, startangle=90, autopct='%1.0f%%',
textprops={'fontsize': 15}]
plt.text[x=-1.15, y=1.5, s='Continents by area, in %', fontsize=27]
plt.show[]
5Sự kết luậnTrong bài viết này, chúng tôi đã so sánh các loại trực quan hóa khác nhau để hiển thị dữ liệu phân loại. Mỗi người trong số họ có phạm vi sử dụng, điểm mạnh và điểm yếu. Một số loại biểu đồ này là cổ điển và phổ biến [biểu đồ thanh], một số loại khác rất cụ thể và trông gần như kỳ lạ [đám mây từ]
Trong trường hợp của chúng tôi, để so sánh các lục địa theo diện tích đất của chúng, các loại trực quan hóa hoạt động tốt nhất là biểu đồ thanh, biểu đồ gốc, biểu đồ tròn và sơ đồ cây. 2 loại còn lại, biểu đồ bánh quế và đám mây từ, ít phù hợp hơn, điều đó không có nghĩa là chúng sẽ phù hợp với bất kỳ dữ liệu nào khác. Việc chọn một biểu đồ phù hợp luôn phụ thuộc vào tình huống và chính xác những gì chúng tôi muốn thể hiện với những phát hiện của mình. Hình ảnh trực quan phù hợp, được tùy chỉnh phù hợp có thể giúp chúng tôi chia sẻ thông tin chi tiết có giá trị với khán giả của mình