আমি ডায়ান্ন কুকের উত্তরে কিছুটা প্রসারিত করতে চাই। যেমনটি তিনি বলেছিলেন, ggplot2 স্ট্যাটিক প্লট তৈরির জন্য, জিজিভিস ইন্টারেক্টিভ প্লটগুলির জন্য। এর মধ্যে একগুচ্ছ পদার্থ রয়েছে:
ফাইল টাইপ ggvis আউটপুট হ'ল CSS এবং জাভাস্ক্রিপ্ট ফাইল সহ HTML। ggvis স্বাভাবিকভাবেই সাধারণ চিত্র ফাইলগুলি আউটপুট দেয় না। ggplot2 সাধারণ চিত্রগুলি আউটপুট করে, যা এইচটিএমএল বা পিডিএফ বা জিআইএফ বা ই-মেইলে এম্বেড করা যায় বা অন্য যে কোনও কিছু হতে পারে। জিজিভিস, আপনি যদি ফাইলটি ইমেল করতে চান তবে আপনি ব্রাউজারে দেখতে এইচটিএমএল ফাইলগুলির একটি ডিরেক্টরি জিপ-আপ করছেন।
অ্যানিমেশন এর একটি পরিণতি হ'ল আপনি যদি কোনও অ্যানিমেশন তৈরি করতে চান তবে আপনি ফ্রেমগুলি ggplot2 এ তৈরি করতে পারেন এবং সেগুলি মার্জ করতে পারেন, তবে ggvis দিয়ে এটি করার কোনও প্রাকৃতিক উপায় নেই। ggvis ইন্টারেক্টিভভাবে অভিনয় করা "লাইভ" অ্যানিমেটেড করবে তবে এগুলি বিভিন্ন ধরণের অ্যানিমেশন। Ggvis প্রক্রিয়া করতে পারে তার চেয়ে বেশি যদি ফ্রেম-এ আরও কিছু করা হয় তবে আপনি চিত্রগুলি তৈরি করে এবং পটভূমিতে সিনেমাটি তৈরি করে (কমপক্ষে একটি প্রাকৃতিক উপায়ে) এর আশপাশে কাজ করতে পারবেন না। একইভাবে, ব্যবহারকারী জিজিভিস থেকে রিপ্লেতে কোনও সিনেমা বা জিআইএফ ফাইল ডাউনলোড করতে পারবেন না।
এই মুহূর্তে আমার বর্তমান প্রকল্পে, আমি ggplot2 থেকে ggvis এ পরিবর্তন করেছি কারণ ggplot2 ইন্টারেক্টিভভাবে অ্যানিমেট করার জন্য খুব ধীর ছিল। তবে, আমি সেটিংসের সাথে কাজ করার পরে, ব্যবহারকারীরাও চাই যে "যান" ক্লিক করতে সক্ষম হবে এবং তারা কী করেছে তার একটি পূর্ণ গতির, মসৃণ-অ্যানিমেশন মুভি ডাউনলোড করতে সক্ষম হবে। জিজিভিস ব্যবহার করে এটি কীভাবে করবেন তা আমি বুঝতে পারি নি, তবে এটি জিপিপ্লট 2 ব্যবহার করে কেক হবে।
স্পিড ggvis ggplot2 এর চেয়ে অনেক বেশি, অনেক বেশি দ্রুত, বিশেষত ডেটা পরিবর্তন করার সময়। প্রতিটি ggplot2 প্লটের একটি দ্বিতীয় বা কয়েক বিলম্ব হয়। ggvis এর দ্বিতীয় বা তাই থাকে যখন আপনি প্রথম প্লটটি তৈরি করেন, তার পরে ডেটা পরিবর্তন করা নির্বিঘ্ন - ggvis "প্রতিক্রিয়াশীলভাবে" ডেটার সাথে যুক্ত হতে পারে তাই যখনই ডেটা পরিবর্তন হয় তখন এটি নিজেই আপডেট হয়। Ggplot2 এর সাথে পুরো প্লটটি আবার নতুন করে আঁকতে চলেছে।
স্টাইল এবং চেহারা ggplot2 প্লট ggvis প্লটের চেয়ে প্রথম নজরে কিছুটা সুন্দর লাগে seem ggplot2 প্লট বেশ মার্জিত। ggvis প্লটগুলি সহজ, তবে সেগুলি আমার উপর বাড়ছে। Ggplot2 এর জন্য এক্সটেনশনগুলিও রয়েছে, যেমন xkcd এবং ওয়েসনডারসন প্যাকেজগুলি, যেখানে ggvis এর জন্য কোনও এনালগ নেই। ggplot2 প্লটগুলি সমস্ত দেখতে একই রকম হয় যে তারা একই ব্যক্তির দ্বারা তৈরি হয়েছিল (ggplot2 এর লেখক) এবং এটি কিছুক্ষণ পরে ক্লান্ত হয়ে পড়ে।
সম্পূর্ণতা ggplot2 এ আপনি তৈরি করতে পারেন এমন প্লটের ধরণ রয়েছে যা কমপক্ষে এখনও পর্যন্ত ggvis সমর্থন করে না। উদাহরণস্বরূপ ggvis এ কোনও "রাগ" প্লটের উপাদান নেই। আমি এক বা দুটি কোরিপলথ দেখেছি যা ggvis দিয়ে তৈরি হয়েছিল, তবে এখনও কোনও প্রাকৃতিক অন্তর্নির্মিত সমর্থন নেই। ggplot2 এর পোলার স্থানাঙ্ক রয়েছে (অর্থাত্ পাই চার্ট), জিজিভিস নেই। জিজিভিস থেকেও অনুপস্থিত (এবং এটি জিপিপ্লট 2 বা একটি জিজিপ্লট 2 এক্সটেনশনে উপলব্ধ): বক্সপ্লট; কনট্যুর প্লট; প্রাকৃতিক হিটম্যাপস; প্রাকৃতিক সম্পর্ক চার্ট; dotplots; বেহালা প্লট; নেটওয়ার্ক প্লট; dendrograms। অবশ্যই আমি নিশ্চিত যে খুব চতুর লোকেরা এই সবগুলি জিজিভিসে তৈরি করতে পারে তবে আমি সেই চালাক নই।
টীকাগুলি ggplot2 এর একটি খুব সুন্দর, সম্ভবত স্বল্প-ব্যবহারযোগ্য, টীকাযুক্ত ফ্রেমওয়ার্ক রয়েছে। ggvis না।
সাবপ্লটস এবং ফেসটস ggplot2 এর খুব সুন্দর, তবে সম্ভবত সীমাবদ্ধ, "ফেসটিং" বৈশিষ্ট্য রয়েছে। আপনি গ্রিড প্যাকেজ ব্যবহার করে একাধিক ggplot2 প্লট একত্রিত করতে পারেন। এখন হিসাবে, আপনি হয় ggvis দিয়ে করতে পারবেন না। ggvis প্লটগুলি একটি একক চিত্রের সাথে একত্রিত করা যায় না (কারণ তারা চিত্র নয়, তারা "লাইভ" ওয়েবপৃষ্ঠাগুলি) এবং এটি কোনও ধরণের ফেসটিং বা সাবপ্লোটিংকে সমর্থন করে না। এটি পাইপলাইনে থাকার কথা।
ভিজ্যুয়াল নমনীয়তা ggplot2 প্রতিটি প্লট একইরকম দেখতে চায়, যার অর্থ লেখক স্টাইলিস্টিকালি পছন্দ করেন। কোনও উপায় নেই, উদাহরণস্বরূপ, ggplot2 এ একাধিক y অক্ষ সহ একটি প্লট রয়েছে। ggvis পারেন। ggvis ggplot2 এর চেয়ে অনেক বেশি নমনীয়। কিংবদন্তীগুলি গোপন করা, একাধিক কিংবদন্তী একত্রিত করা, একই প্লটের বিভিন্ন জিনিসগুলির জন্য বিভিন্ন স্কেল ব্যবহার করা ইত্যাদি পক্ষে কাজ করা সহজ
গভীর কাস্টমাইজিবিলিটি আপনি যদি একটি নতুন চৌকস স্কেল তৈরি করতে চান, তবে এটি ggplot2 এ করা খুব কঠিন নয় (যদিও এটি বেশ বিভ্রান্তিকর)। জিজিভিসে কেবল এটির অনেক কিছুই করার উপায় বলে মনে হচ্ছে না। সম্ভবত এটি এখনও-না।
টাইম সিরিজ ggplot2 টাইম সিরিজ প্লট করতে পছন্দ করে না। এটি পারে , কিন্তু এটি চায় না । আসলে তারা কেউই চায় না; উভয়ই একটি ডেটা ফ্রেমে ডেটা খাওয়ানোর জন্য জোর দিয়ে থাকে এবং তারা এক্সটিএস বা চিড়িয়াখানার জিনিসগুলি পরিচালনা করতে পারে না। একটি সময় সিরিজ কাটা জন্য তাদের অন্তর্নির্মিত বৈশিষ্ট্য নেই। কিন্তু জিজিভিস সময় সিরিজের বিরুদ্ধে জিজিপ্লট 2-এর মতো কঠিন লড়াই করে না। এটি আংশিক কারণ কোনও জিজিভিস প্লটে ডেটা আপডেট করার জন্য এটি এত দ্রুত, আমি মনে করি। আপনি যদি টাইমসারিজ প্লট করতে চান তবে আপনাকে জমা দিতে হবে তবে জিজিভিস এটি সম্পর্কে অনেক কম প্যাসিভ-আগ্রাসী।
তারা কি একই সিনট্যাক্স? বাছাই করুন ... তাদের মধ্যে অনেকগুলি মিল রয়েছে এবং একজনের স্টাইলে চিন্তা করা শিখতে অন্যের শৈলীর সাথে খাপ খাইয়ে নিতে সহায়তা করবে। বিশেষত, উভয়ই ডিজাইন করা হয়েছে যাতে সমস্ত প্লটিং কলগুলি কোডের একক লাইনে একে অপরের সাথে পাইপ করা হয়। এর প্রাথমিক সুবিধা হ'ল এটি ডিবাগিং এবং প্রোফাইলিংকে সত্যই শক্ত করে তোলে এবং মূলত ডিস্টিগিং / প্রোফাইলিং বৈশিষ্ট্যগুলিকে রস্টুডিও অকেজো করার মতো উপস্থাপন করে। এগুলি বাদে এগুলি সিন্টেক্সিকভাবে বেশ আলাদা। কিছু জিনিস যা ggplot2 এ শক্ত হয় ggvis এ সহজ। কিছু জিনিস যা ggplot2 এ সহজ হয় ggvis এ অসম্ভব। এবং বিপরীতভাবে. (জিজিভিস যেভাবে কাজ করে সে সম্পর্কে আমার কিছুটা অগ্রাধিকার রয়েছে যা আমি বুঝতে সহজ মনে করি।)
বাগ ggvis এখনও বেশ কয়েক আছে। কখনও কখনও এটি ঠিক অদ্ভুত আচরণ করে। কখনও কখনও, যদিও প্লটগুলি এলোমেলোভাবে এমন কারণে অদৃশ্য হয়ে যায় যেগুলি প্রায় ঘন্টা সময় কাজ করে এবং খুব কম বোঝায়। বিকাশকারীরা নিখরচায় স্বীকার করেছেন, জিজিভিস এখনও উত্পাদন-প্রস্তুত নয়। যদি আপনি কোন জটিলতা সাথে মোকাবিলা থাকে, তাহলে আপনি হবে তারা নিশ্চয়ই মজা নেই আবিষ্কার।
নীচের লাইন: প্রত্যেকটিতে মধ্যবর্তী প্লটিং শিখতে প্রায় 16 ঘন্টা সময় লাগে। সুতরাং, বাস্তববাদী, আপনি সম্ভবত উভয় শিখতে হবে।