Gpplot2- এ [বন্ধ] qplot () এবং ggplot () এর মধ্যে নির্বাচন করা


98

আমি আর-তে ggplot2প্লট করার জন্য দুর্দান্ত প্যাকেজটি ব্যবহার শুরু করছি , এবং প্রতিটি প্লট "ভাল, আমি ব্যবহার করব qplotনাকি ggplot?"

আমি বুঝতে পারি যে qplotএকটি সহজ বাক্য গঠন প্রদান করেggplot সর্বাধিক বৈশিষ্ট্য এবং নমনীয়তার অনুমতি দেওয়ার সর্বাধিক ব্যবহার করেন এমন ফাংশনটি কী এবং আপনার প্রত্যেকটির জন্য কিছু সঠিক ব্যবহারের মামলা রয়েছে? আপনি কি বেশিরভাগ qplotএবং ggplotশুধুমাত্র জটিল প্লটগুলির জন্য ব্যবহার করেন, বা আপনি ggplotপ্রতিবার ব্যবহার করেন ?

আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ !

উত্তর:


81

আমার হিসাবে, যদি qplot এবং ggplot উভয়ই উপলব্ধ থাকে তবে মানদণ্ডটি ডেটা.ফ্রেমে বা পৃথক ভেরিয়েবলগুলিতে সংরক্ষিত হয় কিনা তার উপর নির্ভর করে।

x<-1:10
y<-rnorm(10)

qplot(x,y, geom="line") # I will use this
ggplot(data.frame(x,y), aes(x,y)) + geom_line() # verbose

d <- data.frame(x, y)

qplot(x, y, data=d, geom="line") 
ggplot(d, aes(x,y)) + geom_line() # I will use this

অবশ্যই, আরও জটিল প্লটের জন্য ggplot () প্রয়োজন হয় এবং আমি সাধারণত ডেটা.ফ্রেমে ডেটা সঞ্চয় করি, তাই আমার অভিজ্ঞতায় আমি খুব কমই কুইপ্লট ব্যবহার করি।

এবং সবসময় ggplot () ব্যবহার করা ভাল লাগে। Qplot টাইপিং সংরক্ষণ করে, আপনি অনেক কার্যকারিতা হারাতে পারেন।


4
স্বীকৃত, এমনকি প্রতিটি উত্তর কার্যকর হলেও সবাইকে ধন্যবাদ!
juba

দুর্দান্ত প্রশ্ন, এবং একটি দুর্দান্ত উত্তর।
d8aninja

চমত্কার উত্তর সত্যই আপনাকে ধন্যবাদ
হোমম বাহরানী

17

আমি আরে নতুন কিন্তু কেবল এটি ভাগ করে নেওয়ার কথা ভেবেছি।

 a <- c(1,2,3)

 b <- c(2,3,4)

 x <- qplot(a,b)

 y <- ggplot(data.frame(a,b), aes(a,b)) +geom_line()

আমি যদি ভেরিয়েবলের মান a এবং b এবং এর পরে প্লট এক্স পরিবর্তন করি তবে এটি পরিবর্তিত মানগুলিকে বিবেচনা করবে যেখানে y হিসাবে নয়। স্ক্রিপ্ট করার সময় ggplot ব্যবহার করা ভাল হবে যদি আপনি qplot ব্যবহার করেন তবে সমস্ত গ্রাফ qplot- র সর্বশেষ প্রদত্ত রেফারেন্সের সমান হবে।


11

আমি মনে করি যে আপনি ggplot2 কীভাবে ব্যবহার করতে চান এবং এটি প্রায়শই এবং এর উপর নির্ভর করে।

আমি সাধারণত প্রকাশনাগুলিতে গ্রাফিক্সের জন্য জিজিপ্লট 2 ব্যবহার করি। এর অর্থ হ'ল আমার আরও উন্নত বৈশিষ্ট্যগুলির প্রয়োজন হয় এবং তাই আমি কখনই সে সম্পর্কে শিখি নাqplot । এছাড়াও, যেহেতু আমার বছরে প্রায় চারটি প্রকাশনা রয়েছে, আমি সিনট্যাক্সের সাথে সত্যিই স্বাচ্ছন্দ্য বোধ করার জন্য যথেষ্ট পরিমাণে জিজিপ্লট 2 ব্যবহার করছি না এবং তাই কোনও একক দিকের দিকে মনোনিবেশ করা সর্বোত্তম বলে মনে হয়।

তবে, আপনি যদি প্রতি সপ্তাহে নতুন ডেটা সেট পান তবে সম্ভবত আপনি সম্ভবত ডেটা সেটগুলি অন্বেষণ এবং ভাল মানের প্লট তৈরি করতে আগ্রহী । এই ক্ষেত্রে, উভয় শিখুন। আপনি সিনট্যাক্সের সাথে পর্যাপ্ত অনুশীলন পাবেন এবং এর সাথে সময় সাশ্রয় করবেন qplot


8

যুবা, আমি খুঁজে পেয়েছি যে কেউ বেশিরভাগ মৌলিক চক্রান্ত প্রয়োজনের জন্য কিউপ্ল্লট ব্যবহার করতে পারে। এটি যথেষ্ট সহজ এবং ডিফল্টগুলি বেশ যুক্তিসঙ্গত, যে আমার স্নাতকোত্তর শিক্ষার্থীরা এটি একচেটিয়াভাবে ব্যবহার করেছে এবং তারা সীমিত অভিজ্ঞতার সাথে দুর্দান্ত প্লট তৈরি করতে পারে। এবং qplot [p <- qplot (ইত্যাদি)] এর দ্বারা নির্মিত প্লটটি ggplot2 সরবরাহ করা সম্পূর্ণ কমান্ডগুলির মধ্যে কোনও দ্বারা পরিবর্তন করা যেতে পারে, যা কার্যকর (তারা সকলেই একইভাবে সংরক্ষণ করা হয়, তারা কীভাবে তৈরি হয়েছিল তা নির্বিশেষে)। তাই ব্যক্তিগতভাবে আমি বেশিরভাগ কিছুর জন্য qplot ব্যবহার করি এবং ফাংশনের অভ্যন্তরের জন্য জিজিপ্লট সংরক্ষণ করি।


5
  • আপনি যদি ইনপুট ভেক্টরগুলির সাথে লেনদেন করেন তবে qplot হ'ল সহজ পছন্দ
  • ইনজুট ডেটা স্ট্রাকচার হিসাবে ggplot একটি ডেটা ফ্রেম প্রয়োজন requires

আপনি যখন কোনও হিস্টোগ্রাম তৈরি করতে চান, Qplot- এর কেবলমাত্র উপস্থিতিগুলির ভেক্টর প্রয়োজন

#rnorm 
x <- rnorm(10)

#ggplot2 package: qplot
qplot(x, geom="histogram")

#ggplot2: using straight ggplot (requires conversion to data.frame)
ggplot(data.frame(x), aes(x)) + geom_histogram()

3

আমার থেকে আরও একটি বৈকল্পিক: আমি qplotসরাসরি কনসোলে টাইপ করার ggplotসময় এবং আমি যখন স্ক্রিপ্টগুলি লিখি তখন আমি ব্যবহার করি। তবে বারবার সন্ধান করার পরে যে আমি 15 মিনিট আগে কনসোলে টাইপ করা প্লটটি পুনরায় তৈরি করতে চাই, আমি সেগুলি প্রায় এখনই একটি স্ক্রিপ্টে লিখি - তাই আমি প্রায় বেশিরভাগ সময়ই ggplot ব্যবহার করি।

(উত্তরের বিভিন্নতা দেখতে আকর্ষণীয়!)

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