Biểu đồ thanh cho dữ liệu phân loại python

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 thanh

Hã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ốc

Biể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[]
9

Hã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òn

Biể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
    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[]
    7. Ngoài ra, tham số
    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 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 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
    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 mà không có khả năng điều chỉnh độ rộng của khoảng cách

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[]
0

Hì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ọn

5. 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[]
4

Hì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]]
    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[]
    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

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[]
1

Hì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[]
5

Sự kết luận

Trong 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

Biểu đồ thanh có thể được sử dụng cho dữ liệu phân loại không?

Biểu đồ thanh và Biểu đồ hình tròn được sử dụng để trực quan hóa dữ liệu phân loại . Cả hai loại biểu đồ đều chứa các biến thể như được hiển thị trong hình ảnh.

Làm cách nào để vẽ biểu đồ giữa hai biến phân loại trong Python?

MatPlotLib với Python .
Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con
Tạo một từ điển với một số chi tiết
Trích xuất các khóa và giá trị từ từ điển [Bước 2]
Tạo một hình và một tập hợp các ô con
Vẽ thanh, phân tán và vẽ đồ thị với dữ liệu tên và giá trị

Biểu đồ tốt nhất để hiển thị dữ liệu phân loại là gì?

Bảng tần số, biểu đồ hình tròn và biểu đồ thanh là cách hiển thị đồ họa phù hợp nhất cho các biến phân loại.

Biểu đồ nào là tốt nhất cho các biến phân loại?

Kế hoạch . Một barplot về cơ bản được sử dụng để tổng hợp dữ liệu phân loại theo một số phương pháp và theo mặc định, giá trị trung bình của nó.

Chủ Đề