প্রোটোভিস বনাম ডি 3.জেএস


84

টিএলডিআর: দুজনের মধ্যে পার্থক্য আলোকিত করার জন্য কারও কাছে প্রোটোভিস এবং ডি 3.জে উভয়ের অভিজ্ঞতা আছে?

আমি গত 2 সপ্তাহ ধরে প্রোটোভিসের সাথে খেলছি এবং এটি এখন পর্যন্ত দুর্দান্ত হয়েছে। এখনই আমি অ্যানিমেশন দিয়ে ইটের প্রাচীরের কিছুটা আঘাত করেছি বলে মনে হচ্ছে।

প্রোটোভিস: http://vis.stanford.edu/protovis/

আমি কিছু সহজ সরল অ্যানিমেশন করতে চাই তবে প্রোটোভিসের সাহায্যে এটি স্বজ্ঞাত থেকে কম মনে হয় - আমি ভাবতে শুরু করি যে প্রোটোভিস আসলেই অ্যানিমেশনের জন্য কখনই বোঝানো হয়নি। সুতরাং, আমি D3.js এর দিকে তাকাতে শুরু করেছি:

http://mbostock.github.com/d3/ex/stack.html

এটি দেখতে খুব অনুরূপ, তবে:

  • আরো হালকা মনে হচ্ছে
  • অন্যান্য ডিওএম উপাদানগুলির পাশাপাশি এসভিজির সাথে মতবিনিময় করতে আগ্রহী বলে মনে হচ্ছে
  • অ্যানিমেশন যোগ করতে প্রস্তুত মনে হয়

অন্য যে কোনও মতপার্থক্য আলোকিত করতে পারে?

আমি যে কোনও এবং সমস্ত ইনপুট জন্য খুব কৃতজ্ঞ

উত্তর:


117

আমি প্রোটোভিস এবং ডি 3 এর সাথে বেশ কিছু কাজ করেছি with আপনার উল্লেখ করা পয়েন্টগুলি ছাড়াও, আমি মনে করি যে নিম্নলিখিত পার্থক্যগুলি আমার জন্য আলাদা:

  • প্রোটোভিস যেখানে আপনি যে ভিজ্যুয়াল বৈশিষ্ট্যগুলি উল্লেখ করছেন তার মধ্যে একটি সরল বিমূর্ত স্তর সরবরাহ করে, D3 প্রকৃত CSS এবং DOM স্পেস ব্যবহার করে - সুতরাং পরিবর্তে .width(10)বা .fillStyle('#00C')আপনি ব্যবহার করতে .style('width', 10)বা .attr('fill', '#00C')। এই উদাহরণগুলিতে, পার্থক্যটি বেশ তুচ্ছ, তবে আপনি যখন কোনও এসভিজি চিত্রে একটি লাইন আঁকার মতো কিছু করছেন, তখন বড় পার্থক্য রয়েছে। ফলস্বরূপ যে ডি 3 ব্যবহার করে কিছুটা নিম্ন স্তরের অনুভূতি বোধ করতে পারে - আপনার আরও নিয়ন্ত্রণ রয়েছে তবে প্রোটোভিস আরও সহজেই কিছু কাজ করতে আপনাকে এসভিজি সিনট্যাক্সের সাথে বেশ পরিচিত হতে হবে।

  • আপনারা যেমন লক্ষ্য করেছেন, প্রোটোভিসগুলি সমস্ত এসভিজিতে রেন্ডার করা হয়েছে, যখন ডি 3 ডিওমের অন্যান্য অংশগুলি ব্যবহার করতে পারে। এর অর্থ হ'ল, ভিজ্যুয়ালাইজেশনের জন্য যা এসভিজি-ভিত্তিক ভিজ্যুয়াল উপাদানগুলির প্রয়োজন হয় না, আপনি এসভিজি সমর্থন করে না এমন ব্রাউজারগুলির সাথেও ডি 3 ব্যবহার করতে পারেন। এর অর্থ এটিও হ'ল এইচটিএমএল এবং এসভিজিকে একই ভিজ্যুয়ালাইজেশনে সংহত করা অনেক সহজ, যা পাঠ্যের সাথে ডিল করার মতো জিনিসগুলির জন্য সত্যই দুর্দান্ত (প্রোটোভিসে টেক্সট ম্যানিপুলেশন এবং লেআউট বেশ দুর্বল)।

  • ডি 3 স্কেল এবং ডেটা ম্যানিপুলেশনের মতো কিছু বেসিক প্রোটোভিস ইউটিলিটিগুলি পরিবর্তন বা ড্রপ করে। আমি বারবার বিরক্ত হয়েছি যে মৌলিক ইউটিলিটিগুলি D3 এর সমতুল্য পছন্দ করে না pv.sum()বা pv.mean()রাখে না, যদিও কিছু, যেমন .nest()দুটি লাইব্রেরিতে জুড়ে দেওয়া হয়। 10/1/12 সম্পাদনা করুন: ডি 3 তার ডেটা ইউটিলিটিগুলি পূরণ করেছে, তবে প্রোটোভিস অন্তর্ভুক্ত রয়েছে এমন কয়েকটি এখনও রয়েছে এবং ডি 3 যেমন pv.dict, যেমন pv.numerate, এবং pv.repeat। সম্ভবত এগুলি এড়িয়ে যায় কারণ তারা সাধারণত কম দরকারী বলে বিবেচিত হত।

  • ডি 3 অ্যাসিক্রোনাস অনুরোধের জন্য ইউটিলিটিগুলি সরবরাহ করে। আমি যখন প্রোটোভিসে এটি চাই তখন আমাকে সাধারণত একটি বাহ্যিক গ্রন্থাগার (অর্থাত্ jQuery) ব্যবহার করতে হয়।

  • প্রোটোভিসের জন্য বেশ কয়েকটি বিস্তৃত ডক্সের তুলনায় ডি 3 এপিআই ডকুমেন্টেশনটিতে প্রায় সম্পূর্ণ অসম্পূর্ণ অভাব রয়েছেসম্পাদনা (8/30/13) : ডি 3 এর এখন গিটহাবে সম্পূর্ণ এবং বিস্তারিত এপিআই ডকুমেন্টেশন রয়েছে , সুতরাং এই পয়েন্টটি আর প্রাসঙ্গিক নয়।

  • পরিশেষে, আমি অ্যানিমেশন দিয়ে খুব বেশি কিছু করি নি, তবে আমি মনে করি আপনি সম্পূর্ণরূপে সঠিক - ডি 3 প্রোটোভিসের চেয়ে বিশেষত অ্যানিমেটেড ট্রানজিশনের ক্ষেত্রে আরও অ্যানিমেশন সহায়তা সরবরাহ করে। প্রোটোভিস চাহিদার ভিত্তিতে কিছু বা সমস্ত দৃশ্যকে পুনরায় রেন্ডার করতে পারে, তবে সীমিত-সময়কালীন অ্যানিমেশনের মাধ্যমে পদক্ষেপ নেওয়ার কোনও সমর্থন নেই - আপনাকে এগুলি হাতে হাতে কোড করতে হবে setInterval। ডি 3 এটি লাইব্রেরির অনেক বেশি অবিচ্ছেদ্য অঙ্গ হিসাবে দেখায়।

সম্পাদনা (7/12/11) : দেখে মনে হচ্ছে একটি নতুন বড় পার্থক্য রয়েছে - ২৮ শে জুন, ২০১১ পর্যন্ত, প্রোটোভিস আর সক্রিয় বিকাশের অধীনে নেই, এবং প্রোটোভিস দলটি D3.js পরিবর্তে চাপ দিচ্ছে। শেষ প্রকাশটি বেশ স্থিতিশীল, সুতরাং এটি আপনাকে এটি ব্যবহার করা থেকে বিরত রাখা উচিত নয়, তবে এটি অবশ্যই বিবেচনার বিষয়।


তৃতীয় বিন্দু ব্যতীত বেশ সঠিক। আপনি একটি স্বেচ্ছাসেবী এইচটিএমএল উপাদানটিতে একটি প্রোটোভিস গ্রাফিক এম্বেড করতে পারেন।
জিওফ

@ জেফ - আমি কেসটিকে বাড়িয়ে দিয়েছি। আমার বক্তব্যটি হ'ল ডি 3 উদ্দেশ্যমূলক উপাদানগুলির সাথে কাজ করার উদ্দেশ্যে তৈরি করা হয়েছে, প্রোটোভিস (এএফআইকে) এর সাথে এটি করার সময় প্রতিষ্ঠিত এপিআইয়ের বাইরে কাজ করা প্রয়োজন (উদাহরণস্বরূপ মূল $domসম্পত্তি সেট করে )। আমি এই পয়েন্টটি টোন করব।
nrabinowitz

4
@ জেফ - দ্বিতীয় ভাবাতে, আমি সেই পয়েন্টটি পুরোপুরি খনন করছি - কোনওভাবে আমি Panel#canvasসম্পত্তিটি লক্ষ্য করিনি । নোটের জন্য ধন্যবাদ।
nrabinowitz

বিস্তারিত উত্তরের জন্য অনেক ধন্যবাদ - এটি সত্যিই সহায়ক হয়েছে
রিচার্ড পাওয়েল

4
মার্চ ২০১৩ সাল থেকে, ডি 3 এর ভি 3 এর জন্য এপিআই রেফারেন্সটি সম্পূর্ণ বলে মনে হচ্ছে এবং এটি সত্যিই ভাল ধারণা তৈরি করে। এছাড়াও, প্রচুর টিউটোরিয়াল এবং চমৎকার উদাহরণ সহ একটি ভাল ডকুমেন্টেশন রয়েছে।
মোবাইলটিভিজেশন

32

একটি টিউটোরিয়াল রয়েছে যা ডি 3 এবং প্রোটোভিসের মধ্যে কিছু বিস্তৃতভাবে পার্থক্যগুলি কভার করে । আমি @ nrabinowitz এর বর্ণনার সাথে একমত, যদিও আমি এটি উল্লেখ করব যে আমরা সম্প্রতি বিস্তৃত এপিআই ডকুমেন্টেশন যুক্ত করেছি


4
হ্যাঁ, আমি সবেমাত্র লক্ষ করেছি যে গতকাল (অনেক প্রশংসা!) আমি উত্তর উত্তর জন্য আপডেট করব :)।
nrabinowitz

6

Protovis এর লেখক থেকে একটি সাম্প্রতিক কাগজ নেই / 2011 প্রকাশিত d3.js http://vis.stanford.edu/files/2011-D3-InfoVis.pdf প্রধানত d3.js সম্পর্কে কিন্তু কারণ কিছু ধারণকারী কেন তারা নির্দিষ্ট পরিবর্তিত প্রোটোভিস থেকে ডি 3 জেএসে যাওয়ার পথে


আমি কাগজটি দরকারী বলে মনে করি । কোনও পরীক্ষা না করে, এটি কোথায় কাজ করে এবং কোথায় এটি অসম্পূর্ণ তার প্রশংসা দেয় । ধন্যবাদ
মাইক গালে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.