ggvis vs. ggplot2 + Shiny; สิ่งที่หนึ่งที่เลือกสำหรับการสร้างภาพเชิงโต้ตอบ?


10

มีคำถามที่คล้ายกันใน CrossValidated และฉันได้อ่านคำตอบแล้ว คำถามของฉันแตกต่างกันเล็กน้อย ฉันไม่ต้องการเพียงแค่เห็นภาพข้อมูลของฉันและแน่นอนสิ่งที่ฉันต้องการเห็นภาพไม่ใช่เรื่องง่ายที่จะเห็นภาพด้วยแพคเกจทั้งสอง

ฉันมีจุดสองชุด ( พิกัด ) ในแผนของฉัน ฉันต้องการเพิ่มขอบและทำให้มันคล้ายกับกราฟ หากฉันมีจำนวนคะแนนจากนั้นขึ้นอยู่กับลักษณะของปัญหาของฉันฉันต้องเพิ่มขอบลงในพล็อตx,Yn(n/2)2

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

ฉันพยายามค้นหาแพ็คเกจการสร้างภาพเครือข่ายที่เหมาะกับโครงการของฉัน แต่ดูเหมือนว่าพวกเขาทั้งหมดใช้ข้อมูลเกี่ยวกับการเชื่อมต่อของขอบหรือโหนดและจัดหาเครือข่ายตามอัลกอริทึมโครงร่างเฉพาะบางอย่าง ข้อมูลของฉันแตกต่าง ฉันมีพิกัดของโหนดและฉันต้องการสร้างขอบระหว่างบางส่วนของพวกเขา ในข้อมูลของฉันโหนดมีตำแหน่งคงที่ของตัวเองและต้องไม่ย้ายไปมา

สุดท้ายฉันแคบลงแพคเกจไปและggvis ใหม่และสดใหม่นอกเหนือจากการออกแบบโดยเจตนาเพื่อสร้างแปลงแบบโต้ตอบ แต่ฉันพบว่ายังสามารถสร้างแปลงแบบโต้ตอบได้ (ถูกต้องหรือไม่) นอกจากนี้ฉันคิดว่าความสามารถของมันนั้นหลากหลายและสมบูรณ์กว่า: ตัวอย่างเช่นมีคุณสมบัติการซูมในขณะที่ไม่มี ที่สำคัญกว่านั้นคือฉันกำลังเติบโตและเปลี่ยนแปลงฉันไม่ต้องการลงทุนเวลามากกับงานที่ล้าสมัยทางเทคนิคหรือบั๊กกี้ในหนึ่งปีหรือมากกว่านั้น ผมคิดว่าเป็นกรณีนี้ถ้าฉันรหัสอยู่บนพื้นฐานของggplot2ggvisggplot2+Shinyggplot2ggvisggplot2ggvisggvisggvis

ตอนนี้คุณช่วยประเมินทางเลือกของฉัน ( ggplot2+shiny) และแนะนำฉันเกี่ยวกับความเป็นไปได้ที่จะทำสิ่งที่ฉันต้องการจะทำอย่างไร?

เนื่องจากฉันไม่รู้จักแพ็คเกจที่กล่าวมาฉันได้เริ่มเรียนรู้ggplot2จากหนังสือของ Wickham และฉันรักมัน! Shinyแต่ผมกลัวของการใช้จ่ายไม่กี่สัปดาห์ที่ผ่านมาและพบว่าแพคเกจที่น่าตื่นตาตื่นใจนี้ไม่สามารถทำในสิ่งที่ฉันต้องการจะทำแม้จะมีความช่วยเหลือของ

PS: ฉันต้องการที่จะใส่รหัสสุดท้ายใน GitHub เพื่อให้ผู้ใช้ที่น่าจะเป็นสามารถดาวน์โหลดและเรียกใช้มัน ดังนั้นฉันไม่จำเป็นต้องสร้างเว็บแอปพลิเคชันไม่จำเป็นต้องมีเว็บไซต์หรือวางแผนที่แบบโต้ตอบออนไลน์ ฉันแค่ต้องการพล็อตเชิงโต้ตอบที่สามารถเรียกใช้จากภายใน Rstudio


ยินดีต้อนรับสู่เว็บไซต์! คุณลองigraphหรือ D3 หรือไม่?
Dawny33

ขอบคุณ! ฉันตรวจสอบสิ่งที่คัดลายมือสามารถทำเพื่อฉันและฉันไม่พบมันสอดคล้องกับข้อมูลที่ฉันมี เท่าที่ฉันเข้าใจ, การเขียนด้วยลายมือแสดงภาพเครือข่ายตามข้อมูลของจุดยอดที่เชื่อมต่อ (หรือข้อมูลที่คล้ายกันเกี่ยวกับขอบ) ขึ้นอยู่กับอัลกอริธึมและลำดับความสำคัญบางอย่าง igraph จะค้นหาตำแหน่งของจุดยอดบนพล็อตที่เข้ากันได้กับข้อมูลที่กำหนด แต่ฉันต้องการให้จุดยอดอยู่ในพิกัดที่ตรงกันของพวกเขาที่ฉันมีในชุดข้อมูลของฉัน ฉันไม่ต้องการให้แพ็คเกจเลือกเค้าโครงและตำแหน่งของพวกเขา
Shahin

ทำไมไม่ลอง d3js.orgล่ะ? ดูเหมือนว่าคุณมีข้อกำหนดเฉพาะ D3 ทำให้การทำงานกับ SVG ง่ายมาก
Ricardo Cruz

คุณลอง gephi แล้วหรือยัง?
MM

คุณช่วยระบุลิงก์ไปยังคำถาม CrossVal ได้ไหม
จิม

คำตอบ:


4

ผ่านมาหลายเดือนแล้วจากคำขอความช่วยเหลือนี้ ฉันเขียนคำตอบนี้ตามคำขอของฉันเองเพื่อแบ่งปันประสบการณ์ของฉัน ผมได้เรียนรู้ggplot2แล้วเช่นเดียวกับggvis สามารถทำงานร่วมกับทั้งสองของพวกเขา แต่ผมพบว่าโครงสร้างมากขึ้นและชัดเจนเมื่อเทียบกับ สิ่งที่คาดว่าจะเป็นในอดีตคือการพัฒนาบนพื้นฐานของประสบการณ์การพัฒนาของหลัง ยิ่งไปกว่านั้นดูเหมือนว่าจะเร็วกว่าการสร้างกราฟ / แผนภูมิอย่างรวดเร็วดูเหมือนว่าจะเหมาะสมกว่าสำหรับ 'Shiny' และการสร้างแอปเพล็ต อย่างไรก็ตามจุดลบคือการขาดคุณสมบัติหลายอย่างเนื่องจากแพ็คเกจยังอยู่ระหว่างการพัฒนาและยังไม่ครบกำหนดShinyShinyggvisggplot2ggvisggplot2ggvis

และขอบคุณมากสำหรับความคิดเห็นที่นี่ ฉันได้ตรวจสอบGephiแล้วมันก็ไม่ได้ช่วยอะไร ฉันสร้างแอปเพล็ตของฉันซึ่งใช้งานได้ดีจริง ๆ แต่ในที่สุดฉันก็มาถึงจุดนี้ว่าฉันต้องใช้เครื่องมือที่มีประสิทธิภาพมากขึ้นเช่นd3jsที่คนแนะนำไว้แล้ว


0

เวลาผ่านไปอย่างรวดเร็ว! หลังจากประสบการณ์การทำงาน 2 ปีตอนนี้ฉันตอบคำถามของฉันเองด้วยความเข้าใจที่ดีขึ้นของ Shiny, R และการสร้างภาพข้อมูลแบบอินเทอร์แอคทีฟ

Plotly เป็นคำตอบที่ดีที่สุด มันสามารถใช้งานได้ง่ายโดย ggplotly () การแปลงแปลง ggplot2 คงที่หรือโดยตรงโดยการเรียนรู้ตรรกะที่อยู่เบื้องหลังฟังก์ชั่น Plotly

กรณีหลังถูกแนะนำสำหรับการใช้งานที่มีแปลงที่หลากหลาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.