Cách tốt nhất để hình dung sự tiêu hao bằng R?


15

Thông qua trang web này, gần đây tôi đã phát hiện ra Sơ đồ Sankey, một cách tuyệt vời để hình dung những gì đang xảy ra trong biểu đồ dòng truyền thống .

Dưới đây là một ví dụ điển hình về Sơ đồ Sankey của George M. Whitesides và George W. Crabtree , Đừng quên nghiên cứu cơ bản dài hạn về năng lượng Nguồn; Đừng quên nghiên cứu cơ bản dài hạn về năng lượng , khoa học 9 tháng 2 năm 2007: Tập. 315. không. 5813, trang 796 - 798.

Sau khi tôi nhận ra rằng không có gói R Sankey, tôi đã tìm thấy một tập lệnh R trực tuyến , thật không may tập lệnh này khá thô và có phần hạn chế. Với hy vọng cao, tôi đã yêu cầu gói Sankey R hoặc chức năng trưởng thành hơn tại stackoverflow , nhưng thật ngạc nhiên là dường như chúng ta không có chức năng trưởng thành để xây dựng Sơ đồ Sankey trong R.

Sau khi tôi đăng một tiền thưởng Geek On Acid là đủ tốt để đề xuất một hack nhỏ trên tập lệnh hiện có, làm cho nó hoạt động ít nhiều cho mục đích cụ thể của tôi.

Kịch bản R cải tiến đã tạo ra sơ đồ này, Sơ đồ R-Sankey của Geek On Acid Nguồn; stackoverflow.com .

Nhưng, không thiếu một gói R chỉ ra rằng Sankey Sơ đồ không phải là như vậy một cách tuyệt vời để hình dung tiêu hao sử dụng R trong một dòng dữ liệu à la một trong những thể hiện trong sơ đồ trên (xem ban đầu câu hỏi stackoverflow cho dữ liệu và mã R . Có lẽ có một cách tốt hơn để hình dung sự tiêu hao.

Bạn nghĩ gì là cách tốt nhất để hình dung sự tiêu hao trong luồng dữ liệu bằng R?


7
Nó là rất khó khăn để có được những sơ đồ để nhìn đẹp trong bất kỳ cách tự động (ví dụ đầu tiên được khả năng thực hiện bởi các nghệ sĩ bằng tay đặt các nút). Khó lập trình không liên quan gì đến tiện ích của nó như một công cụ đồ họa. Bạn có thể tìm thấy nhiều động lực hơn trên bài đăng này của tôi trên trang web về việc hình dung các luồng. Ngoài ra tôi đưa ra một số ví dụ về các bảng phân tích cú pháp và dấu chấm trên một câu trả lời cho trang web này.
Andy W

@AndyW, cảm ơn bạn đã nhận xét rất hữu ích. Tôi sẽ điều tra các phương pháp khác nhau và thử nghiệm với dữ liệu của tôi. Cảm ơn.
Eric Fail

Biểu đồ hàng đầu đó là một ý tưởng tuyệt vời, nhưng đối với tôi, dường như tổng của các nguồn không bằng tổng của các bồn rửa (giả sử chiều cao mô tả cường độ)
naught 101

À .. đừng bận tâm, tôi đã đọc sai ... các bit nhẹ hơn trên các nguồn chỉ là nhãn, không phải là một phần của dữ liệu. Một chút bối rối ..
naught101

Câu trả lời:


4

Tôi đồng ý với @gung. Sơ đồ Sankey mà bạn đã đăng là, tôi nghĩ, một ví dụ khá hay về nơi mà kỹ thuật có thể giúp đỡ. Mặc dù nó phức tạp, bối cảnh (đầu vào và đầu ra năng lượng) cũng phức tạp và thật khó để nghĩ ra một cách dễ dàng hơn để hình dung các đường dẫn của đầu vào đầu vào-đầu ra-hoạt động như mới trong nhiều loại sử dụng.

Bây giờ, đối với ví dụ tiêu hao mà bạn đã đăng, như những người khác đã lưu ý rằng việc sử dụng sơ đồ Sankey là không hữu ích. Tôi nghĩ rằng bạn cần phải đăng đầy đủ các biến của mình nếu bạn muốn có một đề xuất tốt về trực quan hóa thay thế. Nếu bạn chỉ đơn giản muốn thể hiện sự khác biệt về nguồn tiêu hao giữa các trang web và bác sĩ lâm sàng, một loạt các ô chấm nhỏ có thể dễ hiểu nhất đối tượng của bạn và để bạn thực hiện ( xem ví dụ này , trong trường hợp của bạn, các nhóm có thể ở đâu các vị trí, các yếu tố trong các nhóm sẽ là nguyên nhân của sự tiêu hao và trục hoành sẽ là 0-100%).

Nếu sơ đồ Sankey là thứ bạn muốn sử dụng và bạn sẵn sàng học một ngôn ngữ cấp cao khác, thì có một ví dụ hay (có mã) trên thư viện cho gói âm mưu Python, matplotlib.


3

Tôi không nhất thiết cho rằng việc thiếu một phương thức ngụ ý rằng phương pháp đó không quan trọng hoặc không hữu ích. Rốt cuộc, đối với tất cả các phương thức hiện có trong R, đã có một thời gian (hoàn toàn có thể gần đây - R chỉ ~ 10 tuổi) khi không có gói nào cho nó.

Tuy nhiên, tôi nên nghĩ rằng có bất kỳ số cách nào để trực quan hóa dữ liệu như tiêu hao. Suy nghĩ đầu tiên của tôi khi nhìn vào biểu đồ của bạn, là nó có thể được biểu diễn bằng một dấu chấm . Các khả năng khác tồn tại là tốt. Các chức năng phụ của Sơ đồ Sankey sẽ đi vào chơi khi bạn có một số tiêu hao do một nguyên nhân cụ thể tại một thời điểm, và sau đó hơn do cùng một nguyên nhân sau với đầu vào và đầu ra khác ở giữa. Điều đó sẽ phức tạp hơn khi biểu diễn theo các ô tiêu chuẩn (cũng khó theo dõi hơn ngay cả với sơ đồ Sankey - ví dụ: phần ở đầu trang mất khá nhiều công việc để đọc). Vì bạn dường như không có điều đó, sơ đồ Sankey có vẻ đẹp, nhưng quá mức cần thiết.


1
Đồ họa đầu tiên được đưa ra là IMO tuyệt vời. Nó có nhiều chi tiết sẽ khó có thể chụp được bằng trực giác trong một loạt các ô chấm. Ngoài ra, Sơ đồ Sankey rất tốt để trực quan hóa các luồng từ và đến các nút khác nhau (sự kết hợp lại thành năng lượng đã sử dụng và năng lượng bị mất).
Andy W

@AndyW, tôi không có ý định gõ con số đó. Rất nhiều công việc để đọc phần lớn b / c nó chứa rất nhiều thông tin. Rằng nó lôi kéo bạn vào và giữ bạn ở đó trong một thời gian có thể là một điểm cộng thực sự - tôi không có ý nói rằng mô tả của tôi trở nên tiêu cực. OTOH, dữ liệu của OP đủ đơn giản để các lô đơn giản hơn có thể truyền tải chúng.
gung - Tái lập Monica

Điểm hay, nếu dữ liệu của OP không phức tạp hơn được đưa ra thì có lẽ rắc rối hơn giá trị của nó! Tôi thậm chí không muốn nghĩ về việc chuyển đổi sơ đồ năng lượng ban đầu thành một loạt các ô chấm.
Andy W

@gung, Cảm ơn bạn đã trả lời bài viết của tôi. Tôi đồng ý, việc thiếu phương pháp không nên được coi là một dấu hiệu rõ ràng cho thấy phương pháp này không tốt hoặc hữu ích và tôi chắc chắn không đưa ra op trên sơ đồ Sankey (SD). Đối với dữ liệu của tôi, những gì bạn thấy trong sơ đồ chỉ là thứ nguyên trên cùng của dữ liệu của tôi, tôi có dữ liệu được thu thập tại 4 trang web khác nhau và bởi 7 bác sĩ lâm sàng khác nhau và tôi muốn đưa thông tin này vào âm mưu của mình, như một số loại chia nhỏ trong dòng chảy tổng thể. Nó có thể trông giống như quá mức với dữ liệu hiện tại, nhưng tôi tin rằng một SD sẽ hữu ích nếu tôi bao gồm tất cả các biến của mình.
Eric Fail

Với độ phức tạp cao hơn, sơ đồ Sankey có lẽ là lựa chọn tốt nhất của bạn. Cũng đáng để bạn xem qua một số bài đăng của @ AndyW, như những bài được liên kết ở trên. Anh ấy đã đưa ra rất nhiều câu trả lời tốt có thể có liên quan. Ví dụ, nếu bạn nhấp vào tên của anh ấy để điều hướng đến trang của anh ấy, sau đó nhấp vào thẻ hiển thị dữ liệu ở đó, bạn có thể xem qua các bài đăng của anh ấy.
gung - Phục hồi Monica

1

Làm thế nào về việc sử dụng mã R để viết tệp SVG với độ rộng mũi tên được đặt theo dữ liệu của bạn và bố cục đơn giản. Sau đó tải vào Inkscape và uốn cong các mũi tên xung quanh, thêm nhãn vv vv vào nội dung trái tim của bạn để làm cho một cái gì đó đẹp.

Vấn đề rõ ràng: bạn cần làm lại tất cả sự chỉnh sửa của mình trong Inkscape nếu dữ liệu của bạn thay đổi (mặc dù bạn có thể sử dụng SVG đẹp từ Inkscape làm mẫu và chỉ thay thế độ rộng mũi tên mới trong).

Nhưng thành thật mà nói, nếu đống lộn xộn nhiều màu ở phía trên là một sơ đồ Sankey tốt, tôi ghét nhìn thấy một cái xấu trên bụng đầy [mặc dù nhìn chằm chằm vào nó thêm vài phút nữa đã cho tôi manh mối về những gì về nó, một đồ họa tốt không cần điều đó].


2
Tôi muốn thấy một cách tốt hơn để hình dung dữ liệu đó. Có rất nhiều thông tin trong cốt truyện đó (và nhiều biến khác nhau), do đó, tất nhiên nó sẽ phức tạp ...
naught101

2
Bản đồ vi mô của Dan Carr mất nhiều thời gian để tiêu hóa toàn bộ đồ họa, bất kỳ bản đồ đường đi chi tiết nào cũng vậy. Không nhất thiết là một điều xấu. Xem bài đăng trên blog của James Chesire, Tư duy nhanh và Trực quan hóa tư duy chậm .
Andy W
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.