ฉันต้องการขยายคำตอบของ Dianne Cook เล็กน้อย อย่างที่เธอบอกว่า ggplot2 นั้นใช้สำหรับสร้างแปลงคงที่ ggvis สำหรับแปลงเชิงโต้ตอบ มีความหมายมากมายดังนี้:
ประเภทไฟล์ ggvis output เป็น HTML รวมถึงไฟล์ CSS และไฟล์จาวาสคริปต์ ggvis ไม่ส่งไฟล์ภาพธรรมดาตามปกติ ggplot2 ส่งภาพธรรมดาซึ่งสามารถฝังใน HTML หรือ pdf หรือ gif หรืออีเมลหรืออะไรก็ได้ ggvis, ถ้าคุณต้องการส่งไฟล์ทางอีเมล, คุณกำลังบีบอัดไดเรกทอรีของไฟล์ HTML ที่จะดูในเบราว์เซอร์
ภาพเคลื่อนไหว ผลที่ตามมาคือถ้าคุณต้องการสร้างภาพเคลื่อนไหวคุณสามารถสร้างเฟรมเป็น ggplot2 และรวมเข้าด้วยกัน แต่ไม่มีวิธีธรรมชาติในการทำเช่นนี้กับ ggvis ggvis การแสดงแบบโต้ตอบจะทำให้ "สด" แต่ภาพเคลื่อนไหวเหล่านี้แตกต่างกัน หากมีมากกว่าที่เกิดขึ้นในแต่ละเฟรมมากกว่าที่ ggvis สามารถดำเนินการได้คุณจะไม่สามารถหลีกเลี่ยงปัญหานั้น (อย่างน้อยก็อย่างเป็นธรรมชาติ) โดยการสร้างภาพและสร้างภาพยนตร์ในพื้นหลัง ผู้ใช้ไม่สามารถดาวน์โหลดภาพยนตร์หรือไฟล์ gif จาก ggvis เพื่อเล่นซ้ำได้
ตอนนี้ในโครงการปัจจุบันของฉันฉันเปลี่ยนจาก ggplot2 เป็น ggvis เพราะ ggplot2 นั้นช้าเกินไปสำหรับการสร้างภาพเคลื่อนไหวแบบโต้ตอบ แต่ฉันยังต้องการให้ผู้ใช้หลังจากเล่นด้วยการตั้งค่าเพื่อให้สามารถคลิก "ไป" และดาวน์โหลดภาพยนตร์แอนิเมชั่นความเร็วสูงที่ราบรื่นในสิ่งที่พวกเขาทำ ฉันไม่ได้คิดวิธีการทำสิ่งนี้โดยใช้ ggvis แต่มันจะเป็นเค้กโดยใช้ ggplot2
ggvis ความเร็วนั้นเร็วกว่า ggplot2 มากโดยเฉพาะอย่างยิ่งเมื่อมีการเปลี่ยนแปลงข้อมูล แต่ละพล็อต ggplot2 มีความล่าช้าเป็นวินาทีหรือไม่กี่วินาที ggvis มีวินาทีหรือมากกว่านั้นเมื่อคุณสร้างพล็อตครั้งแรกหลังจากนั้นการเปลี่ยนแปลงข้อมูลเป็นไปอย่างราบรื่น - ggvis สามารถเชื่อมโยง "ตอบโต้" กับข้อมูลเพื่อให้มันอัพเดทตัวเองเมื่อใดก็ตามที่ข้อมูลเปลี่ยนแปลง ด้วย ggplot2 พล็อตทั้งหมดจะได้รับการวาดใหม่
รูปแบบและลักษณะ ggplot2 แปลงดูดีขึ้นเล็กน้อยในแวบแรก, มากกว่าแผนการของ ggvis แปลง ggplot2 ค่อนข้างสง่างาม แผนการของ ggvis นั้นเรียบง่าย แต่พวกมันกำลังเติบโตกับฉัน นอกจากนี้ยังมีส่วนขยายสำหรับ ggplot2 เช่นแพ็คเกจ xkcd และ wesanderson ซึ่งไม่มี analog สำหรับ ggvis แผนการ ggplot2 ทั้งหมดดูเหมือนว่าพวกเขาถูกสร้างขึ้นโดยคนคนเดียวกัน (ผู้เขียน ggplot2) และนั่นก็เหนื่อยล้าไปซักพัก
ความสมบูรณ์ มีประเภทของพล็อตที่คุณสามารถสร้างใน ggplot2 ซึ่ง ggvis ไม่สนับสนุนอย่างน้อยก็จนถึงตอนนี้ ตัวอย่างเช่นไม่มีองค์ประกอบพล็อต "Rug" ใน ggvis ฉันเคยเห็นหนึ่งหรือสองคนที่สร้างขึ้นด้วย ggvis แต่ก็ยังไม่มีการสนับสนุนในตัวตามธรรมชาติ ggplot2 มีพิกัดเชิงขั้ว (เช่นแผนภูมิวงกลม) ggvis ไม่มี ยังขาดหายไปจาก ggvis (และสามารถใช้ได้ทั้งใน ggplot2 หรือในส่วนขยาย ggplot2): boxplots; แปลงโครงร่าง แผ่นความร้อนตามธรรมชาติ แผนภูมิสหสัมพันธ์ตามธรรมชาติ dotplots; แปลงไวโอลิน; แปลงเครือข่าย dendrograms แน่นอนฉันแน่ใจว่าคนที่ฉลาดมากบางคนสามารถสร้างสิ่งเหล่านี้ใน ggvis แต่ฉันไม่ใช่คนฉลาด
คำอธิบายประกอบ ggplot2 มีกรอบคำอธิบายประกอบที่ดีมากอาจใช้ไม่ได้ ggvis ไม่ได้
Subplots & Facets ggplot2 มีคุณสมบัติ "faceting" ที่ค่อนข้างดี แต่อาจจะค่อนข้าง จำกัด คุณสามารถรวมหลาย ggplot2 แปลงโดยใช้แพ็คเกจกริด ณ ตอนนี้คุณไม่สามารถทำได้ด้วย ggvis แผนการ ggvis ไม่สามารถรวมกันเป็นภาพเดียว (เพราะไม่ใช่ภาพพวกมันเป็นหน้าเว็บ "สด") และไม่สนับสนุนการเผชิญหน้าหรือการย่อยใด ๆ นี้ควรจะอยู่ในท่อ
Visual Flexibility ggplot2 ต้องการให้ทุกพล็อตมีหน้าตาเหมือนกันซึ่งหมายความว่าเหมือนผู้เขียนชอบโวหาร ตัวอย่างเช่นไม่มีวิธีที่จะมีพล็อตที่มีแกน y หลายแกนใน ggplot2 ggvis สามารถ ggvis มีความยืดหยุ่นมากกว่า ggplot2 มาก มันง่ายกว่ามากที่จะทำสิ่งต่าง ๆ เช่นซ่อนตำนานรวมหลายตำนานเข้าด้วยกันใช้ตาชั่งที่แตกต่างกันสำหรับสิ่งต่าง ๆ ในพล็อตเดียวกัน ฯลฯ
ความสามารถในการปรับแต่งลึกหากคุณต้องการสร้างพูดมาตราส่วนที่ฉลาดใหม่มันไม่ยากเกินไปที่จะทำเช่นนั้นใน ggplot2 (แม้ว่ามันจะค่อนข้างสับสนก็ตาม) ดูเหมือนจะไม่มีทางทำสิ่งต่างๆมากมายใน ggvis อาจจะเป็นเพียงแค่ยังไม่ได้
อนุกรมเวลา ggplot2 ไม่ชอบลงจุดอนุกรมเวลา มันสามารถแต่ก็ไม่ได้ต้องการที่จะ จริงๆแล้วทั้งสองคนไม่ต้องการ ทั้งยืนยันว่าเป็นข้อมูลที่ถูกป้อนใน data.frame และพวกเขาไม่สามารถจัดการวัตถุ xts หรือสวนสัตว์ได้ พวกเขาไม่มีคุณสมบัติในตัวสำหรับการแบ่งซีรีย์เวลา แต่ ggvis ไม่ได้ต่อสู้กับซีรีย์เวลายากเท่า ggplot2 นั่นเป็นส่วนหนึ่งเพราะมันเร็วมากในการอัพเดทข้อมูลในพล็อต ggvis ฉันคิดว่า หากคุณต้องการพล็อตชุดไทม์แมชชีนคุณจะต้องเอาชนะทั้งการยอมจำนน แต่ ggvis นั้นไม่ค่อยจริงจังกับมันมากนัก
เป็นไวยากรณ์เดียวกันหรือไม่ การเรียงลำดับของ ... มีหลายอย่างที่เหมือนกันระหว่างพวกเขาและการเรียนรู้ที่จะคิดในรูปแบบหนึ่งจะช่วยปรับให้เข้ากับสไตล์ของอีกคนหนึ่ง โดยเฉพาะอย่างยิ่งทั้งสองได้รับการออกแบบเพื่อให้ทุกสายเรียกเข้าพล็อตเข้าด้วยกันในรหัสบรรทัดเดียว ข้อได้เปรียบหลักของการทำเช่นนี้คือการทำให้การดีบักและการทำโปรไฟล์ยากมาก นอกจากนั้นพวกเขายังมีความแตกต่างทางด้านวากยสัมพันธ์ บางสิ่งที่ยากใน ggplot2 นั้นง่ายใน ggvis สิ่งที่ง่ายใน ggplot2 นั้นเป็นไปไม่ได้ใน ggvis และในทางกลับกัน. (ฉันมีความชอบเล็กน้อยสำหรับวิธีที่ ggvis ทำสิ่งต่าง ๆ ซึ่งฉันเข้าใจได้ง่ายขึ้น)
บั๊กส์ ยังคงมีไม่กี่คน บางครั้งมันก็มีพฤติกรรมแปลก ๆ แม้ว่าบางครั้งพล็อตจะหายไปแบบสุ่มด้วยเหตุผลที่ต้องใช้เวลาหลายชั่วโมงในการหลีกเลี่ยงและทำความเข้าใจน้อยมาก นักพัฒนายอมรับสิ่งนี้ได้อย่างอิสระ ggvis ยังไม่พร้อมสำหรับการผลิต หากคุณจัดการกับความซับซ้อนใด ๆ คุณจะพบว่าพวกเขาไม่ได้ล้อเล่น
บรรทัดล่าง: การเรียนรู้การวางแผนขั้นกลางในแต่ละใช้เวลาประมาณ 16 ชั่วโมง คุณอาจเรียนรู้ทั้งคู่