ভিত্তিক সমাধানগুলির একটি নেতিবাচক দিক grid.arrange
হ'ল বেশিরভাগ জার্নালের যেমন প্রয়োজন হয় তেমন তারা প্লটগুলিকে অক্ষরের (এ, বি, ইত্যাদি) লেবেল করা কঠিন করে তোলে।
আমি এই (এবং কয়েকটি অন্যান্য) সমস্যাগুলি সমাধান করার জন্য কাউপ্লট প্যাকেজটি লিখেছি , বিশেষত plot_grid()
:
library(cowplot)
iris1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() + theme_bw()
iris2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) + theme_bw() +
theme(legend.position = c(0.8, 0.8))
plot_grid(iris1, iris2, labels = "AUTO")
যে বস্তুটি plot_grid()
প্রত্যাবর্তন করে তা হ'ল অন্য ggplot2 অবজেক্ট এবং আপনি ggsave()
যথারীতি এটি সংরক্ষণ করতে পারেন :
p <- plot_grid(iris1, iris2, labels = "AUTO")
ggsave("plot.pdf", p)
বিকল্পভাবে, আপনি কাউপ্লট ফাংশনটি ব্যবহার করতে পারেন save_plot()
, ggsave()
এটি চারপাশে একটি পাতলা মোড়ক যা মিলিত প্লটের সঠিক মাত্রা পাওয়া সহজ করে তোলে, যেমন:
p <- plot_grid(iris1, iris2, labels = "AUTO")
save_plot("plot.pdf", p, ncol = 2)
( ncol = 2
যুক্তিটি বলে save_plot()
যে এখানে দুটি প্লট পাশাপাশি রয়েছে এবং save_plot()
সেভ করা চিত্রটি দ্বিগুণ প্রশস্ত করে তোলে))
গ্রিডে প্লটগুলি কীভাবে সাজানো যায় তার আরও গভীর-বিবরণের জন্য এই চিত্রটি দেখুন। ভাগ করে নেওয়া কিংবদন্তি দিয়ে কীভাবে প্লট তৈরি করা যায় তা ব্যাখ্যা করার জন্য একটি ভাইনেটও রয়েছে।
বিভ্রান্তির একটি ঘন ঘন বিষয়টি হ'ল কাফ্লট প্যাকেজটি ডিফল্ট ggplot2 থিম পরিবর্তন করে। প্যাকেজটি সেভাবে আচরণ করে কারণ এটি মূলত অভ্যন্তরীণ ল্যাব ব্যবহারের জন্য লেখা হয়েছিল এবং আমরা কখনই ডিফল্ট থিমটি ব্যবহার করি না। যদি এটি সমস্যার কারণ হয়ে থাকে তবে আপনি চারপাশে কাজ করার জন্য নিম্নলিখিত তিনটি পদ্ধতির একটি ব্যবহার করতে পারেন:
1. প্রতিটি প্লটের জন্য থিমটি ম্যানুয়ালি সেট করুন। আমি মনে করি যে প্রতিটি প্লটের জন্য সর্বদা একটি নির্দিষ্ট থিম নির্দিষ্ট করা ভাল অনুশীলন+ theme_bw()
উপরের উদাহরণটি দিয়েছিলাম। আপনি যদি কোনও নির্দিষ্ট থিম নির্দিষ্ট করেন তবে ডিফল্ট থিমটি কিছু যায় আসে না।
2. ডিফল্ট থিমটি আবার ggplot2 ডিফল্টে ফিরিয়ে দিন। আপনি এক লাইনের কোড দিয়ে এটি করতে পারেন:
theme_set(theme_gray())
৩. প্যাকেজটি সংযুক্ত না করে কাউফ্লট ফাংশনগুলিতে কল করুন। এছাড়াও আপনি প্রিপেন্ডিং করে কল library(cowplot)
বা require(cowplot)
তার পরিবর্তে কাউপ্লট ফাংশনগুলিতে কল করতে পারবেন না cowplot::
। উদাহরণস্বরূপ, ggplot2 ডিফল্ট থিম ব্যবহার করে উপরের উদাহরণটি হয়ে উঠবে:
## Commented out, we don't call this
# library(cowplot)
iris1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot()
iris2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
theme(legend.position = c(0.8, 0.8))
cowplot::plot_grid(iris1, iris2, labels = "AUTO")
আপডেট:
- কাউপ্লট ১.০ হিসাবে, ডিফল্ট ggplot2 থিমটি আর পরিবর্তন করা হয় না।
- Ggplot2 3.0.0 হিসাবে, প্লটগুলি সরাসরি লেবেলযুক্ত হতে পারে, উদাহরণস্বরূপ এখানে দেখুন।