วิธีที่ดีที่สุดในการเห็นภาพการขัดสีโดยใช้ R?


15

ผ่านเว็บไซต์นี้ฉันเพิ่งค้นพบ Sankey Diagrams วิธีที่ยอดเยี่ยมในการมองภาพสิ่งที่เกิดขึ้นในแผนภูมิการไหลแบบดั้งเดิม

นี่คือตัวอย่างที่ดีของ Sankey Diagram โดยGeorge M. Whitesides และ George W. Crabtree , อย่าลืมการวิจัยพื้นฐานด้านพลังงานระยะยาว Source; อย่าลืมการวิจัยพื้นฐานด้านพลังงานระยะยาววิทยาศาสตร์ 9 กุมภาพันธ์ 2550: ฉบับที่ 5 315. ไม่ใช่ 5813, pp. 796 - 798

หลังจากที่ฉันรู้ว่าไม่มีแพ็คเกจ Sankey R ฉันพบสคริปต์ R ออนไลน์โชคไม่ดีที่สคริปต์นี้ค่อนข้างดิบและค่อนข้าง จำกัด ด้วยความหวังสูงฉันขอแพคเกจ Sankey R หรือฟังก์ชั่นที่เป็นผู้ใหญ่มากกว่าที่ stackoverflowแต่ฉันประหลาดใจที่ดูเหมือนว่าเราไม่มีฟังก์ชั่นที่เป็นผู้ใหญ่สำหรับการสร้าง Sankey Diagrams ใน R

หลังจากที่ฉันโพสต์Geek On Acid จำนวนมากก็ใจดีพอที่จะแนะนำการแฮ็กขนาดเล็กในสคริปต์ที่มีอยู่ซึ่งทำให้มันทำงานได้มากหรือน้อยตามวัตถุประสงค์เฉพาะของฉัน

R-script ที่ปรับปรุงแล้วสร้างไดอะแกรมนี้ขึ้น Geek On Acid R-Sankey Diagram มา stackoverflow.com

แต่ไม่ขาดของแพคเกจอาระบุว่าแซนคีย์ไดอะแกรมไม่ได้เป็นเช่นวิธีที่น่าตื่นตาตื่นใจที่จะเห็นภาพการขัดสีที่ใช้ในการวิจัยข้อมูลไหลàลาหนึ่งที่นำเสนอในแผนภาพข้างต้น (ดูเริ่มต้นคำถาม StackOverflow สำหรับข้อมูลและรหัส R . อาจจะ มีวิธีที่ดีกว่าในการมองเห็นการขัดสี

คุณคิดว่าอะไรเป็นวิธีที่ดีที่สุดในการมองเห็นการขัดสีในการไหลของข้อมูลโดยใช้ R


7
เป็นการยากมากที่จะทำให้ไดอะแกรมดูสวยงามในแบบอัตโนมัติ (ตัวอย่างแรกก็น่าจะทำโดยศิลปินที่วางโหนดด้วยตนเอง) โปรแกรมยากที่จะทำอะไรกับยูทิลิตี้มันเป็นเครื่องมือกราฟิก คุณอาจพบแรงจูงใจเพิ่มเติมเกี่ยวกับโพสต์ของฉันในเว็บไซต์ GIS เกี่ยวกับการมองเห็นกระแส ฉันยังยกตัวอย่างบางส่วนของparsets และ dot plotsในคำตอบของเว็บไซต์นี้
Andy W

@AndyW ขอบคุณสำหรับความคิดเห็นที่มีประโยชน์มาก ฉันจะตรวจสอบวิธีการต่าง ๆ และทดสอบข้อมูลของฉัน ขอบคุณ
Eric Fail

แผนภาพบนสุดนั้นเป็นความคิดที่ดี แต่ดูเหมือนว่าฉันว่าผลรวมของแหล่งข้อมูลไม่เท่ากับผลรวมของอ่างล้างจาน (สมมติว่าความสูงอธิบายขนาด)
naught101

อ่า .. ไม่เป็นไรฉันอ่านผิด ... บิตที่เบากว่าของแหล่งที่มาเป็นเพียงป้ายกำกับไม่ใช่ส่วนหนึ่งของข้อมูล สับสนนิดหน่อย ..
naught101

คำตอบ:


4

ฉันเห็นด้วยกับ @gung ไดอะแกรม Sankey ที่คุณโพสต์คือฉันคิดว่าเป็นตัวอย่างที่ดีทีเดียวที่เทคนิคสามารถช่วยได้ ในขณะที่มันซับซ้อนบริบท (อินพุตและเอาต์พุตพลังงาน) ก็ซับซ้อนเช่นกันและมันก็ยากที่จะคิดวิธีที่ดีกว่าในการมองเห็นเส้นทางของอินพุต - เอาท์พุต - ทำหน้าที่เป็นอินพุตใหม่ในการใช้งานหลายประเภท

ทีนี้สำหรับตัวอย่างการขัดสีที่คุณโพสต์เนื่องจากคนอื่นสังเกตว่ามันไม่เป็นประโยชน์ในการใช้แผนภาพ Sankey ฉันคิดว่าคุณต้องโพสต์ชุดตัวแปรทั้งหมดหากคุณต้องการคำแนะนำที่ดีเกี่ยวกับการสร้างภาพข้อมูลทางเลือก หากคุณต้องการแสดงความแตกต่างในแหล่งที่มาของการขัดสีระหว่างไซต์และแพทย์ชุดจุดเล็ก ๆ หลายจุดอาจเป็นวิธีที่ง่ายที่สุดสำหรับผู้ชมของคุณที่จะเข้าใจและให้คุณนำไปใช้ ( ดูตัวอย่างนี้ในกรณีของคุณ เว็บไซต์องค์ประกอบภายในกลุ่มจะเป็นสาเหตุของการขัดสีและแกนนอนจะเป็น 0-100%)

หากไดอะแกรม Sankey เป็นสิ่งที่คุณต้องการใช้และคุณยินดีที่จะตะลุยภาษาระดับสูงอื่นมีตัวอย่างที่ดี (พร้อมรหัส)ในแกลเลอรีสำหรับแพ็คเกจการวางแผน Python matplotlib


3

ฉันไม่จำเป็นต้องคิดว่าการขาดวิธีการที่แสดงถึงวิธีการนั้นไม่สำคัญหรือไม่มีประโยชน์ ท้ายที่สุดสำหรับวิธีการทั้งหมดที่มีอยู่ใน R มีเวลา (อาจเป็นไปได้ล่าสุด - R มีอายุเพียง ~ 10 ปี) เมื่อไม่มีแพ็คเกจสำหรับมัน

อย่างไรก็ตามฉันควรคิดว่ามีหลายวิธีที่จะเห็นภาพข้อมูลเช่นการขัดสี ความคิดแรกของฉันกำลังมองหาที่แผนภูมิของคุณก็คือว่ามันอาจจะเป็นตัวแทนที่มีพล็อตจุด ความเป็นไปได้อื่น ๆ ก็มีอยู่เช่นกัน ฟังก์ชั่นพิเศษของแซนคีย์แผนภาพจะมาลงเล่นเมื่อคุณมีบางขัดสีเนื่องจากสาเหตุโดยเฉพาะอย่างยิ่งเมื่อถึงจุดหนึ่งแล้วมากขึ้นเนื่องจากสาเหตุเดียวกันในภายหลังกับปัจจัยอื่น ๆ และเอาท์พุทในระหว่าง ซึ่งจะมีความซับซ้อนมากขึ้นในการแสดงโดยพล็อตมาตรฐาน (นอกจากนี้ยังยากที่จะติดตามแม้จะมีไดอะแกรม Sankey - ตัวอย่างเช่นที่ด้านบนของหน้าใช้การอ่านค่อนข้างมาก) เนื่องจากคุณดูเหมือนไม่มีแผนภาพ Sankey ที่ดูเหมือนจะสวย แต่ overkill


1
กราฟิกแรกที่ได้รับคือ IMO ที่ยอดเยี่ยม มีรายละเอียดมากมายที่ยากต่อการจับภาพในชุดจุดแปลง นอกจากนี้ Sankey Diagram ยังช่วยให้เห็นภาพการไหลของจากและไปยังโหนดต่างๆ (การรวมกันเป็นพลังงานที่ใช้แล้วและพลังงานที่สูญเสีย)
Andy W

@ Andy ฉันไม่ได้ตั้งใจที่จะเคาะรูปนั้น มันเป็นงานที่ต้องอ่านเป็นส่วนใหญ่ b / c มีข้อมูลจำนวนมาก มันชักนำคุณเข้ามา & ถือคุณไว้ชั่วขณะหนึ่งอาจเป็นประโยชน์ได้จริง - ฉันไม่ได้ตั้งใจให้คำอธิบายของฉันหลุดออกมาเป็นลบ OTOH ข้อมูลของ OP ตรงไปตรงมามากพอที่แผนการที่เรียบง่ายสามารถสื่อความหมายได้
gung - Reinstate Monica

จุดดีถ้าข้อมูลของ OP ไม่ซับซ้อนเกินกว่าที่กำหนดอาจเป็นปัญหามากกว่าที่ควรจะเป็น! ฉันไม่อยากคิดจะแปลงแผนภาพพลังงานดั้งเดิมไปเป็นชุดจุดแปลง
Andy W

@gung ขอบคุณสำหรับการตอบกลับโพสต์ของฉัน ฉันเห็นด้วยการขาดวิธีไม่ควรเป็นสัญญาณที่ชัดเจนว่าวิธีนี้ไม่ดีหรือมีประโยชน์และฉันไม่ได้ให้ op บน Sankey diagrams (SD) ในเรื่องข้อมูลของฉันสิ่งที่คุณเห็นในแผนภาพเป็นเพียงมิติด้านบนของข้อมูลของฉันฉันมีข้อมูลที่เก็บรวบรวมใน 4 ไซต์ที่แตกต่างกันและโดยแพทย์ 7 คนที่แตกต่างกันและฉันต้องการที่จะรวมข้อมูลนี้ไว้ในแผนของฉันเช่น แบ่งย่อยภายในการไหลโดยรวม อาจดูเหมือน overkill กับข้อมูลปัจจุบัน แต่ฉันเชื่อว่า SD จะมีประโยชน์หากฉันรวมตัวแปรทั้งหมดไว้ด้วย
Eric ล้มเหลว

ด้วยความซับซ้อนที่มากขึ้นแผนภาพ Sankey อาจเป็นทางออกที่ดีที่สุดของคุณ นอกจากนี้คุณยังควรลองอ่านโพสต์ของ @ AndyW เช่นโพสต์ด้านบน เขาได้รับคำตอบที่ดีมากมายซึ่งอาจเกี่ยวข้องกัน ตัวอย่างเช่นหากคุณคลิกที่ชื่อของเขาเพื่อนำทางไปยังหน้าของเขาจากนั้นคลิกที่แท็กการแสดงข้อมูลเป็นภาพคุณสามารถดูโพสต์ของเขาได้
gung - Reinstate Monica

1

วิธีการเกี่ยวกับการใช้รหัส R เพื่อเขียนไฟล์ SVG ด้วยความกว้างของลูกศรที่ตั้งค่าตามข้อมูลของคุณและเค้าโครงที่เรียบง่าย จากนั้นโหลดเข้าสู่ Inkscape และโค้งงอลูกศรไปรอบ ๆ เพิ่มเลเบล ฯลฯ และอื่น ๆ ลงในเนื้อหาของหัวใจของคุณเพื่อสร้างสิ่งที่สวยงาม

ปัญหาที่ชัดเจน: คุณต้องทำการ prettification ทั้งหมดของคุณใหม่ใน Inkscape หากข้อมูลของคุณเปลี่ยนแปลง (แม้ว่าคุณอาจจะสามารถใช้ SVG ที่น่ารักจาก Inkscape เป็นเทมเพลตและแทนที่ความกว้างของลูกศรใหม่ได้)

แต่จริงๆแล้วถ้าหากความยุ่งเหยิงของ squiggles ที่ยุ่งเหยิงหลายสีที่ด้านบนเป็นแผนภาพ Sankey ที่ดีฉันเกลียดที่จะเห็นคนเลวในท้องเต็มรูปแบบ [แม้ว่าการจ้องมองที่มันในอีกไม่กี่นาที สิ่งที่เกี่ยวกับกราฟิกที่ดีไม่จำเป็นต้องมี]


2
ฉันสนใจที่จะเห็นวิธีที่ดีกว่าในการแสดงข้อมูลนั้น มีข้อมูลจำนวนมากในพล็อตนั้น (และตัวแปรที่แตกต่างกันหลายตัว) ดังนั้นแน่นอนว่ามันจะซับซ้อน ...
naught101

2
แผนที่ขนาดเล็กของ Dan Carr ใช้เวลาในการย่อยกราฟิกเต็มรูปแบบดังนั้นแผนที่ถนนที่มีรายละเอียดใด ๆ ไม่จำเป็นต้องเป็นสิ่งที่ไม่ดี ดูโพสต์บล็อกเจมส์ Chesire ของการคิดอย่างรวดเร็วและการแสดงความคิดช้า
Andy W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.