Biểu đồ thanh là biểu đồ 2 chiều với các thanh hình chữ nhật trên trục X hoặc Y. Chúng tôi sử dụng các thanh hình chữ nhật để so sánh các giá trị giữa các danh mục riêng biệt bằng cách so sánh chiều cao hoặc chiều dài của chúng. Biểu đồ này là điển hình trong trực quan hóa dữ liệu vì nó dễ tạo và dễ hiểu
Tuy nhiên, trong một số trường hợp, chẳng hạn như tạo đồ họa thông tin hoặc trình bày dữ liệu cho công chúng cần thu hút sự chú ý của mọi người, biểu đồ thanh có thể không đủ hấp dẫn. Đôi khi sử dụng quá nhiều biểu đồ thanh có thể dẫn đến hiển thị mờ
Có nhiều loại biểu đồ trong trực quan hóa dữ liệu. Thực tế, đồ thị có thể được cải thiện hoặc thay đổi hình thức. Bài viết này sẽ chỉ ra 9 ý tưởng mà bạn không chỉ có thể sử dụng thay cho biểu đồ thanh mà còn làm cho kết quả thu được trông đẹp mắt
Hai ví dụ về trực quan hóa trong bài viết này mà bạn có thể sử dụng thay cho biểu đồ Thanh để thu hút sự chú ý. Hình ảnh của tác giả
từ chối trách nhiệm
Mục đích của bài viết này không phải là chống lại biểu đồ thanh. Biểu đồ nào cũng có ưu điểm của nó. Bài viết này nhằm mục đích hiển thị các hình ảnh trực quan có thể thu hút sự chú ý hơn biểu đồ thanh. Nhân tiện, chúng không hoàn hảo;
Bắt đầu nào
Lấy dữ liệuBắt đầu với việc nhập thư viện
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns%matplotlib inline
Để chỉ ra rằng phương pháp được đề cập trong bài viết này có thể được áp dụng cho dữ liệu trong thế giới thực, chúng tôi sẽ sử dụng dữ liệu từ Danh sách các quốc gia theo lượng khí thải carbon dioxide trên Wikipedia. Bài viết này hiển thị danh sách các quốc gia và vùng lãnh thổ có chủ quyền theo lượng khí thải CO2 năm 2018
Bài viết này sử dụng dữ liệu từ Wikipedia theo các điều khoản của Creative Commons Ghi công-Chia sẻ tương tự 3. 0 Giấy phép chưa chuyển đổi
Tôi đã làm theo các bước hữu ích để tải xuống dữ liệu từ Web Scraping Bảng Wikipedia vào Dataframe
Sử dụng BeautifulSoup để phân tích dữ liệu thu được
Ví dụ: tôi sẽ chọn cột cuối cùng, Lượng khí thải CO2 năm 2018/Tổng số không bao gồm LUCF[Thay đổi sử dụng đất và Lâm nghiệp] và chỉ lọc các quốc gia có lượng khí thải CO2 từ 200 đến 1000 MTCO2e [Số tấn carbon dioxide tương đương]
Các mã bên dưới có thể được sửa đổi, nếu bạn muốn sử dụng các cột khác hoặc thay đổi phạm vi phát thải CO2
Sau khi lấy DataFrame, chúng ta sẽ sắp xếp lượng khí thải CO2 để lấy DataFrame khác. Cả DataFrames, DataFrame bình thường và được sắp xếp, sẽ được sử dụng để vẽ đồ thị sau này. Lý do đằng sau việc tạo hai DataFrame là để chỉ ra rằng kết quả có thể khác nhau
df_s = df.sort_values[by='emission_2018', ascending=False]
df_s.head[9]
Bây giờ mọi thứ đã sẵn sàng, hãy vẽ biểu đồ thanh để so sánh với kết quả từ các hình ảnh hóa khác sau này
Biểu đồ thanh cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Dữ liệu từ Wikipedia. Hình ảnh của tác giả
Trước khi tiếp tục, chúng tôi sẽ xác định một hàm để trích xuất danh sách màu để sử dụng sau này với mỗi hình ảnh trực quan
Áp dụng chức năng để có được một danh sách các màu
pal_vi = get_color['viridis_r', len[df]]
pal_plas = get_color['plasma_r', len[df]]
pal_spec = get_color['Spectral', len[df]]
pal_hsv = get_color['hsv', len[df]]
trực quan
Trong bài viết này có 9 hình ảnh hóa, chúng ta có thể phân thành hai nhóm
Sửa đổi các thanh hình chữ nhật
- Biểu đồ thanh tròn [còn gọi là Biểu đồ đường đua]
- biểu đồ thanh xuyên tâm
- sơ đồ cây
- biểu đồ bánh quế
- Biểu đồ thanh tương tác
Thay đổi hình thức
- Biểu đồ tròn
- biểu đồ rađa
- Biểu đồ bong bóng
- đóng gói vòng tròn
- Thay đổi hướng bằng biểu đồ thanh tròn [còn gọi là Biểu đồ đường đua]
Khái niệm về biểu đồ thanh tròn là biểu thị các thanh xung quanh tâm của một vòng tròn. Mỗi thanh bắt đầu từ cùng một mức độ và di chuyển theo cùng một hướng. Người có thể hoàn thành vòng lặp có giá trị cao nhất
Đây là một ý tưởng hay để thu hút sự chú ý của độc giả. Nhân tiện, các thanh dừng ở giữa vòng tròn rất khó đọc. Coi chừng độ dài của mỗi thanh không bằng nhau. Những cái gần trung tâm sẽ có chiều dài ngắn hơn những cái ở xa trung tâm
Vẽ biểu đồ thanh tròn với DataFrame
Biểu đồ thanh tròn cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Vẽ biểu đồ thanh tròn với DataFrame được sắp xếp
Biểu đồ thanh tròn cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
2. Bắt đầu từ trung tâm với biểu đồ thanh Radial
Khái niệm về biểu đồ thanh xuyên tâm đang thay đổi hướng của các thanh. Thay vì có cùng hướng, mỗi thanh bắt đầu từ tâm của vòng tròn và di chuyển theo một hướng khác đến cạnh của vòng tròn
Vui lòng cân nhắc rằng các thanh không nằm liền kề nhau có thể khó so sánh. Các nhãn ở các góc khác nhau dọc theo các thanh xuyên tâm;
Vẽ biểu đồ thanh xuyên tâm với DataFrame
Biểu đồ thanh xuyên tâm cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Vẽ biểu đồ thanh xuyên tâm với DataFrame được sắp xếp
Biểu đồ thanh xuyên tâm cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
3. Sử dụng khu vực để so sánh với Treemap
Sơ đồ cây giúp hiển thị dữ liệu phân cấp bằng cách sử dụng các khu vực hình chữ nhật. Mặc dù dữ liệu của chúng tôi không có phân cấp, nhưng chúng tôi vẫn có thể áp dụng sơ đồ cây bằng cách chỉ hiển thị một cấp phân cấp
Vẽ sơ đồ cây, thông thường, dữ liệu được sắp xếp giảm dần từ giá trị lớn nhất. Với nhiều hình chữ nhật, xin lưu ý rằng những hình nhỏ có thể khó đọc hoặc khó phân biệt với những hình khác
Tạo sơ đồ cây tương tác với Plotly
Treemap cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
4. Kết hợp các ô vuông nhỏ với biểu đồ Bánh quế
Bên cạnh cái tên lạ mắt, biểu đồ bánh quế là một ý tưởng hay để tạo đồ họa thông tin. Nó bao gồm nhiều ô vuông nhỏ hơn ghép lại thành một hình chữ nhật lớn, làm cho kết quả trông giống như một chiếc bánh quế
Thông thường, các ô vuông được sắp xếp theo bố cục 10 x 10 để hiển thị tỷ lệ hoặc tiến độ. Nhân tiện, số lượng ô vuông có thể được thay đổi cho phù hợp với dữ liệu
Vẽ biểu đồ bánh quế hiển thị lượng khí thải CO2 của mọi quốc gia
Biểu đồ bánh quế cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Kết quả có thể trông hấp dẫn và đầy màu sắc, nhưng rất khó để phân biệt giữa các sắc thái gần nhau của màu sắc. Đây có thể coi là hạn chế của waffle chart. Như vậy, có thể nói biểu đồ waffle phù hợp để so sánh dữ liệu với một số danh mục
Để tránh khó đọc, chúng ta hãy vẽ từng quốc gia, từng quốc gia một, chống lại các quốc gia khác. Sau đó, ghép chúng lại thành một bức ảnh ghép. Với mã bên dưới, vui lòng lưu ý rằng các lô sẽ được xuất trên máy tính của bạn để nhập sau
Vẽ biểu đồ bánh quế của mỗi quốc gia
Một ví dụ về biểu đồ bánh quế biểu thị lượng khí thải CO2 của một quốc gia so với lượng khí thải CO2 từ các quốc gia khác trong khoảng từ 200 đến 1.000 MTCO2e vào năm 2018. Hình ảnh của tác giả
Bây giờ chúng ta đã có biểu đồ bánh quế của mỗi quốc gia, hãy xác định chức năng để tạo ảnh ghép. Tôi đã tìm thấy một đoạn mã tuyệt vời bên dưới để kết hợp các ô từ Stack Overflow[link]
Áp dụng chức năng lấy ảnh ghép
# to create a fit photo collage:
# width = number of columns * figure width
# height = number of rows * figure heightget_collage[5, 5, 2840, 1445, save_name, 'Collage_waffle.png']
Một phần của ảnh ghép kết hợp biểu đồ waffle của mỗi quốc gia. Hình ảnh của tác giả
5. Không thay đổi gì ngoài việc làm cho biểu đồ thanh tương tác
Chúng ta có thể biến một biểu đồ thanh đơn giản thành một biểu đồ tương tác. Đây là một ý tưởng hay trong trường hợp bạn muốn tiếp tục sử dụng biểu đồ thanh. Kết quả thu được có thể được phát hoặc lọc theo cách người dùng muốn. Plotly là thư viện hữu ích giúp tạo biểu đồ hình tròn tương tác dễ dàng
Mối quan tâm duy nhất là hiển thị biểu đồ thanh tương tác cho người dùng cuối;
Vẽ biểu đồ thanh tương tác
Biểu đồ thanh tương tác cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả6. Hiển thị tỷ lệ phần trăm trong biểu đồ hình tròn
Biểu đồ hình tròn là một biểu đồ điển hình khác trong trực quan hóa dữ liệu. Về cơ bản, nó là một đồ họa thống kê hình tròn được chia thành các lát để hiển thị tỷ lệ số. Biểu đồ hình tròn thông thường có thể được chuyển đổi thành biểu đồ tương tác để có thể phát hoặc lọc kết quả. Chúng ta có thể sử dụng Plotly để tạo biểu đồ hình tròn tương tác
Tương tự như sử dụng biểu đồ thanh tương tác, nên có hướng dẫn giải thích cách sử dụng chức năng trong trường hợp người đọc là người dùng cuối
Vẽ biểu đồ hình tròn tương tác
Biểu đồ hình tròn tương tác cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả7. Vẽ xung quanh một vòng tròn bằng biểu đồ Radar
Biểu đồ radar là một phương pháp đồ họa hiển thị dữ liệu đa biến. Để so sánh, biểu đồ thanh chủ yếu được sử dụng với dữ liệu phân loại. Để áp dụng biểu đồ radar với dữ liệu phân loại, chúng ta có thể coi mỗi loại là một biến trong dữ liệu đa biến. Giá trị của mỗi danh mục sẽ được vẽ từ trung tâm
Với nhiều danh mục, người dùng có thể khó so sánh các dữ liệu không nằm cạnh nhau. Điều này có thể được giải quyết bằng cách áp dụng biểu đồ radar với dữ liệu được sắp xếp. Do đó, người dùng có thể xác định giá trị nào cao hơn hoặc thấp hơn các giá trị khác
Vẽ biểu đồ radar với DataFrame
Biểu đồ Radar cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Vẽ biểu đồ radar với DataFrame được sắp xếp
8. Sử dụng nhiều vòng kết nối với biểu đồ Bong bóng
Về mặt lý thuyết, biểu đồ bong bóng là một biểu đồ phân tán với các kích thước khác nhau của điểm dữ liệu. Đây là một biểu đồ lý tưởng để hiển thị dữ liệu ba chiều, giá trị X, giá trị Y và kích thước dữ liệu
Một điểm hay khi áp dụng biểu đồ bong bóng với dữ liệu phân loại không có giá trị X và Y là chúng ta có thể xác định vị trí các bong bóng theo cách chúng ta muốn. Ví dụ: mã bên dưới cho biết cách vẽ các bong bóng theo chiều dọc
Tạo danh sách các giá trị X, giá trị Y và nhãn. Sau đó, thêm chúng dưới dạng cột vào DataFrame. Nếu bạn muốn vẽ các bong bóng theo hướng nằm ngang, hãy xen kẽ các giá trị giữa các cột X và Y
Vẽ biểu đồ bong bóng dọc
Biểu đồ bong bóng dọc cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Để tiến xa hơn, chúng ta có thể hiển thị các bong bóng ở các dạng khác nhau. Hãy thử vẽ chúng theo hướng tròn
Để làm được điều đó, chúng ta cần tính tọa độ X và Y. Bắt đầu với việc chia 360 độ cho số hàng. Sau đó, chuyển đổi độ bằng các hàm Cosine và Sine để có tọa độ X và Y tương ứng
Vẽ các bong bóng theo hướng tròn
Biểu đồ bong bóng theo hướng tròn cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Có thể nhận thấy rằng chúng ta định vị các bong bóng càng phức tạp thì chúng ta càng mất nhiều không gian. Chúng ta có thể tiết kiệm không gian cho các hình ảnh trực quan khác bằng biểu đồ bong bóng dọc hoặc ngang
9. Nhóm các bong bóng với đóng gói Vòng tròn
Cuối cùng, hãy nhóm các bong bóng không có vùng chồng lên nhau. Đóng gói hình tròn là một ý tưởng hay để vẽ các bong bóng trong khi tiết kiệm không gian. Chúng ta cần tính toán vị trí và kích thước của từng bong bóng. May mắn thay, có một thư viện tên là circlify giúp việc tính toán trở nên dễ dàng
Một nhược điểm của đóng gói hình tròn là khó tìm ra sự khác biệt giữa các bong bóng có kích thước gần nhau. Điều này có thể được giải quyết bằng cách dán nhãn cho từng bong bóng với giá trị của nó
Vẽ đồ thị đóng gói vòng tròn
Đóng gói vòng tròn cho thấy lượng khí thải CO2 từ 200 đến 1.000 MTCO2e vào năm 2018 theo quốc gia. Hình ảnh của tác giả
Tóm lược
Không có gì sai với biểu đồ thanh. Thực tế, biểu đồ thanh rất đơn giản và dễ sử dụng. Tuy nhiên, biểu đồ nào cũng hoàn hảo và phù hợp với mọi công việc. Trực quan hóa dữ liệu đôi khi cần thu hút sự chú ý, chẳng hạn như tạo đồ họa thông tin mà biểu đồ thanh có thể không mang lại sự hấp dẫn
Bài viết này đã hiển thị chín hình ảnh hiển thị cùng chiều dữ liệu với biểu đồ thanh và thu hút sự chú ý. Nhân tiện, những biểu đồ này cũng có nhược điểm của chúng. Vui lòng xem xét rằng chúng có thể khó đọc hoặc không phù hợp cho một báo cáo chính thức
Nếu bạn có bất kỳ đề xuất hoặc đề xuất nào, vui lòng để lại nhận xét. Cảm ơn vì đã đọc