রঙ, আকার ইত্যাদির জন্য অতিরিক্ত উপাদানগুলি ম্যাপিং এবং মসৃণ যোগ করার মতো দুর্দান্ত বৈশিষ্ট্যগুলি ggplot2
ব্যবহার করে স্ক্যাটার প্লটগুলির একটি ম্যাট্রিক্স প্লট করা কি সম্ভব ggplot
?
আমি base
ফাংশন অনুরূপ কিছু সম্পর্কে চিন্তা করছি pairs
।
রঙ, আকার ইত্যাদির জন্য অতিরিক্ত উপাদানগুলি ম্যাপিং এবং মসৃণ যোগ করার মতো দুর্দান্ত বৈশিষ্ট্যগুলি ggplot2
ব্যবহার করে স্ক্যাটার প্লটগুলির একটি ম্যাট্রিক্স প্লট করা কি সম্ভব ggplot
?
আমি base
ফাংশন অনুরূপ কিছু সম্পর্কে চিন্তা করছি pairs
।
উত্তর:
আপনি প্লটমেট্রিক্স চেষ্টা করতে চাইতে পারেন:
library(ggplot2)
data(mtcars)
plotmatrix(mtcars[,1:3])
আমার কাছে এমপিজি (এমটিকার্সে প্রথম কলাম) কোনও উপাদান নয়। আমি এটি পরীক্ষা করে দেখিনি, তবে এটির কারণ হওয়ার কোনও কারণ নেই। তবে আমি একটি বিচ্ছুরিত প্লট পেয়েছি :)
দ্রষ্টব্য: ভবিষ্যতের রেফারেন্সের জন্য, @ naught101 এই প্রশ্নের নীচে অন্য প্রতিক্রিয়াতে প্রস্তাবিত হিসাবে প্যাকেজটি থেকে ফাংশনটি plotmatrix()
প্রতিস্থাপিত হয়েছে ।ggpairs()
GGally
plotmatrix()
প্রতিস্থাপিত হয়েছে । ggpairs()
GGally
আমি এটি করতে ইচ্ছুক রাখি, তবে প্লটমেট্রিক্সটি বকাঝকা। হ্যাডলি পরিবর্তে GGally প্যাকেজ ব্যবহার করার পরামর্শ দেয় । এটির একটি ফাংশন রয়েছে, জিগপেইস যা একটি বিশাল উন্নত জোড়া প্লট (আপনাকে আপনার ডেটা ফ্রেমে অ-অবিচ্ছিন্ন ভেরিয়েবলগুলি ব্যবহার করতে দেয়)। এটি ভেরিয়েবলের ধরণের উপর নির্ভর করে প্রতিটি স্কোয়ারে বিভিন্ন প্লট প্লট করে:
library(GGally)
ggpairs(iris, aes(colour = Species, alpha = 0.4))
colour
পরিবর্তনশীল একটি ফ্যাক্টর হতে হবে; 45 মিনিট ব্যয় করেছেন যে এটি খুঁজে পেয়েছেন।
melt
আইডি ভেরিয়েবল হিসাবে আগ্রহী সেগুলি ব্যবহার করে আপনি ডেটাফ্রেম করতে পারেন এবং তারপরে অন্যান্য ভেরিয়েবলগুলির দ্বারা মুখোমুখি হতে পারেন ।
ggplot(data, aes(x=id, y=value)) + geom_point() + facet_grid(.~variable)
। আমি ধরে নিচ্ছি আপনি "পারস্পরিক সম্পর্ক প্লট" বলার সময় আপনি স্ক্যাটার প্লটের কথা বলছেন, কারণ আমি এর আগে কখনও শুনিনি।
GGally::ggpairs(iris, aes(colour = Species, alpha=0.4))
যদি কেউ কোনও ggplot
অবজেক্ট পেতে চায় ( ggmatrix
যেমনটি হয় না ggpairs()
) তবে সমাধানটি হ'ল তথ্যকে দু'বার গলিয়ে ফেলা, তারপরে ggplot
ফেসটিংয়ের মাধ্যমে। প্যারামিটার সরবরাহ করা থাকলে প্লট করা অঞ্চল সীমাবদ্ধ করার facet_wrap
চেয়ে ভাল হবে ।facet_grid
scales = 'free'
require(ggplot2)
require(dplyr)
require(tidyr)
gatherpairs <- function(data, ...,
xkey = '.xkey', xvalue = '.xvalue',
ykey = '.ykey', yvalue = '.yvalue',
na.rm = FALSE, convert = FALSE, factor_key = FALSE) {
vars <- quos(...)
xkey <- enquo(xkey)
xvalue <- enquo(xvalue)
ykey <- enquo(ykey)
yvalue <- enquo(yvalue)
data %>% {
cbind(gather(., key = !!xkey, value = !!xvalue, !!!vars,
na.rm = na.rm, convert = convert, factor_key = factor_key),
select(., !!!vars))
} %>% gather(., key = !!ykey, value = !!yvalue, !!!vars,
na.rm = na.rm, convert = convert, factor_key = factor_key)
}
iris %>%
gatherpairs(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% {
ggplot(., aes(x = .xvalue, y = .yvalue, color = Species)) +
geom_point() +
geom_smooth(method = 'lm') +
facet_wrap(.xkey ~ .ykey, ncol = length(unique(.$.ykey)), scales = 'free', labeller = label_both) +
scale_color_brewer(type = 'qual')
}