আরেকটি সমাধান, Ondes ব্যতীত ইতিমধ্যে উল্লিখিত (ব্যবহার layout
বা par(xpd=TRUE)
) করা হয় সমগ্র ডিভাইসকে উপর একটি স্বচ্ছ চক্রান্ত সঙ্গে আপনার চক্রান্ত ওভারলে এবং তারপর যে কিংবদন্তি যোগ করুন।
কৌশলটি হ'ল সম্পূর্ণ ষড়যন্ত্র ক্ষেত্রের উপর একটি (খালি) গ্রাফ ওভারলে করা এবং এতে কিংবদন্তি যুক্ত করা। আমরা par(fig=...)
বিকল্পটি ব্যবহার করতে পারি । প্রথমে আমরা আর প্লট করে পুরো প্লটিং ডিভাইসে নতুন প্লট তৈরি করতে:
par(fig=c(0, 1, 0, 1), oma=c(0, 0, 0, 0), mar=c(0, 0, 0, 0), new=TRUE)
সেটিংটি প্রয়োজনীয় oma
এবং mar
যেহেতু আমরা প্লটের অভ্যন্তর পুরো ডিভাইসটি কভার করতে চাই। new=TRUE
আর নতুন ডিভাইস শুরু করা থেকে রোধ করতে প্রয়োজন। এরপরে আমরা খালি প্লট যুক্ত করতে পারি:
plot(0, 0, type='n', bty='n', xaxt='n', yaxt='n')
এবং আমরা কিংবদন্তি যুক্ত করতে প্রস্তুত:
legend("bottomright", ...)
ডিভাইসের নীচে ডানদিকে একটি কিংবদন্তি যুক্ত করবে। তেমনি, আমরা শীর্ষ বা ডান মার্জিনে কিংবদন্তি যুক্ত করতে পারি। আমাদের কেবলমাত্র এটি নিশ্চিত করতে হবে যে মূল প্লটটির মার্জিনটি কিংবদন্তি স্থানের জন্য যথেষ্ট বড়।
এই সমস্ত একটি ফাংশন করা;
add_legend <- function(...) {
opar <- par(fig=c(0, 1, 0, 1), oma=c(0, 0, 0, 0),
mar=c(0, 0, 0, 0), new=TRUE)
on.exit(par(opar))
plot(0, 0, type='n', bty='n', xaxt='n', yaxt='n')
legend(...)
}
এবং একটি উদাহরণ। কিংবদন্তি যুক্ত করতে নীচে পর্যাপ্ত জায়গা রয়েছে তা নিশ্চিত করে প্রথমে প্লটটি তৈরি করুন:
par(mar = c(5, 4, 1.4, 0.2))
plot(rnorm(50), rnorm(50), col=c("steelblue", "indianred"), pch=20)
তারপরে কিংবদন্তি যুক্ত করুন
add_legend("topright", legend=c("Foo", "Bar"), pch=20,
col=c("steelblue", "indianred"),
horiz=TRUE, bty='n', cex=0.8)
ফলাফল এতে: