मेरे पास कुछ सहसंबंध मूल्यों के साथ एक मैट्रिक्स है। अब मैं उस ग्राफ को बनाना चाहता हूं जो कमोबेश उसी तरह दिखता है:
मैं उसे कैसे प्राप्त कर सकता हूं?
मेरे पास कुछ सहसंबंध मूल्यों के साथ एक मैट्रिक्स है। अब मैं उस ग्राफ को बनाना चाहता हूं जो कमोबेश उसी तरह दिखता है:
मैं उसे कैसे प्राप्त कर सकता हूं?
जवाबों:
त्वरित, गंदा और बॉलपार्क में:
library(lattice)
#Build the horizontal and vertical axis information
hor <- c("214", "215", "216", "224", "211", "212", "213", "223", "226", "225")
ver <- paste("DM1-", hor, sep="")
#Build the fake correlation matrix
nrowcol <- length(ver)
cor <- matrix(runif(nrowcol*nrowcol, min=0.4), nrow=nrowcol, ncol=nrowcol, dimnames = list(hor, ver))
for (i in 1:nrowcol) cor[i,i] = 1
#Build the plot
rgb.palette <- colorRampPalette(c("blue", "yellow"), space = "rgb")
levelplot(cor, main="stage 12-14 array correlation matrix", xlab="", ylab="", col.regions=rgb.palette(120), cuts=100, at=seq(0,1,0.01))
बल्कि "कम" जैसा दिखता है, लेकिन जाँच के लायक (अधिक दृश्य जानकारी देने के रूप में):
सहसंबंध मैट्रिक्स ellipses :
सहसंबंध मैट्रिक्स हलकों :
कृपया नीचे @assylias द्वारा संदर्भित कॉरप्लेट विगनेट में और उदाहरण देखें।
ellipse:plotcorr
।
Ggplot2 लाइब्रेरी इससे निपट सकती है geom_tile()
। ऐसा लगता है कि ऊपर उस प्लॉट में कुछ रीकॉलिंग हुई होगी, क्योंकि कोई नकारात्मक सहसंबंध नहीं हैं, इसलिए अपने डेटा पर ध्यान दें। mtcars
डेटासेट का उपयोग करना :
library(ggplot2)
library(reshape)
z <- cor(mtcars)
z.m <- melt(z)
ggplot(z.m, aes(X1, X2, fill = value)) + geom_tile() +
scale_fill_gradient(low = "blue", high = "yellow")
संपादित करें :
ggplot(z.m, aes(X1, X2, fill = value)) + geom_tile() +
scale_fill_gradient2(low = "blue", high = "yellow")
मिडपॉइंट के रंग को निर्दिष्ट करने की अनुमति देता है और यह सफेद में चूक जाता है इसलिए यहां एक अच्छा समायोजन हो सकता है। अन्य विकल्प यहाँ और यहाँ ggplot वेबसाइट पर देखे जा सकते हैं ।
c(-1, -0.6, -0.3, 0, 0.3, 0.6, 1)
) के साथ "white"
बीच में जाने के लिए रंग सहसंबंध कुशल की समरूपता को दर्शाते हैं।
scale_fill_gradient2()
आपके द्वारा वर्णित कार्यक्षमता को स्वचालित रूप से प्राप्त करता है। मुझे नहीं पता था कि अस्तित्व में है।
p <- ggplot(.....) + ... + ....; library(plotly); ggplotly(p)
इसे अंतःक्रियात्मक बना देगा
X1
उपयोग करने के लिए कारक स्तरों के उत्क्रमण की आवश्यकता होती है :z.m$X1 <- factor(z.m$X1, levels = rev(levels( z.m$X1 )))
कॉरपोट पैकेज का उपयोग करें:
library(corrplot)
data(mtcars)
M <- cor(mtcars)
## different color series
col1 <- colorRampPalette(c("#7F0000","red","#FF7F00","yellow","white",
"cyan", "#007FFF", "blue","#00007F"))
col2 <- colorRampPalette(c("#67001F", "#B2182B", "#D6604D", "#F4A582", "#FDDBC7",
"#FFFFFF", "#D1E5F0", "#92C5DE", "#4393C3", "#2166AC", "#053061"))
col3 <- colorRampPalette(c("red", "white", "blue"))
col4 <- colorRampPalette(c("#7F0000","red","#FF7F00","yellow","#7FFF7F",
"cyan", "#007FFF", "blue","#00007F"))
wb <- c("white","black")
par(ask = TRUE)
## different color scale and methods to display corr-matrix
corrplot(M, method="number", col="black", addcolorlabel="no")
corrplot(M, method="number")
corrplot(M)
corrplot(M, order ="AOE")
corrplot(M, order ="AOE", addCoef.col="grey")
corrplot(M, order="AOE", col=col1(20), cl.length=21,addCoef.col="grey")
corrplot(M, order="AOE", col=col1(10),addCoef.col="grey")
corrplot(M, order="AOE", col=col2(200))
corrplot(M, order="AOE", col=col2(200),addCoef.col="grey")
corrplot(M, order="AOE", col=col2(20), cl.length=21,addCoef.col="grey")
corrplot(M, order="AOE", col=col2(10),addCoef.col="grey")
corrplot(M, order="AOE", col=col3(100))
corrplot(M, order="AOE", col=col3(10))
corrplot(M, method="color", col=col1(20), cl.length=21,order = "AOE", addCoef.col="grey")
if(TRUE){
corrplot(M, method="square", col=col2(200),order = "AOE")
corrplot(M, method="ellipse", col=col1(200),order = "AOE")
corrplot(M, method="shade", col=col3(20),order = "AOE")
corrplot(M, method="pie", order = "AOE")
## col=wb
corrplot(M, col = wb, order="AOE", outline=TRUE, addcolorlabel="no")
## like Chinese wiqi, suit for either on screen or white-black print.
corrplot(M, col = wb, bg="gold2", order="AOE", addcolorlabel="no")
}
उदाहरण के लिए:
बल्कि सुरुचिपूर्ण आई.एम.ओ.
उस प्रकार के ग्राफ को अन्य शब्दों के बीच "हीट मैप" कहा जाता है। एक बार जब आप अपना सहसंबंध मैट्रिक्स प्राप्त कर लेते हैं, तो वहाँ से बाहर विभिन्न ट्यूटोरियल में से एक का उपयोग करके इसे प्लॉट करें।
बेस ग्राफिक्स का उपयोग करना: http://flowingdata.com/2010/01/21/how-to-make-a-heatmap-a-quick-and-easy-solution/
Ggplot2 का उपयोग करना: http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/
मैं @daroczig द्वारा पोस्ट किए गए विज़ुअलाइज़ेशन के समान कुछ काम कर रहा हूं, जिसमें पैकेज के plotcorr()
फ़ंक्शन का उपयोग करके @Ulrik द्वारा पोस्ट किया गया कोड है ellipse
। मैं सहसंबंधों का प्रतिनिधित्व करने के लिए दीर्घवृत्त का उपयोग पसंद करता हूं, और नकारात्मक और सकारात्मक सहसंबंध का प्रतिनिधित्व करने के लिए रंगों का उपयोग करता हूं। हालाँकि, मैं चाहता था कि आंख को पकड़ने वाले रंग 1 और -1 के करीब सहसंबंधों के लिए खड़े हों, न कि उन 0 के करीब।
मैंने एक विकल्प तैयार किया, जिसमें रंगीन चक्रों पर सफेद दीर्घवृत्त दिखाई देते हैं। प्रत्येक सफ़ेद दीर्घवृत्त का आकार इतना होता है कि उसके पीछे दिखाई देने वाले रंगीन वृत्त का अनुपात वर्ग सहसंबंध के बराबर होता है। जब सहसंबंध 1 और -1 के पास होता है, तो सफेद दीर्घवृत्त छोटा होता है, और रंगीन सर्कल का अधिकांश भाग दिखाई देता है। जब सहसंबंध 0 के पास होता है, तो सफेद दीर्घवृत्त बड़ा होता है, और रंगीन चक्र का थोड़ा दृश्यमान होता है।
फ़ंक्शन, https://github.com/JVAdams/jvamisc/blob/master/R/plotcor.rplotcor()
पर उपलब्ध है ।
mtcars
डेटासेट का उपयोग करके परिणामी साजिश का एक उदाहरण नीचे दिखाया गया है।
library(plotrix)
library(seriation)
library(MASS)
plotcor(cor(mtcars), mar=c(0.1, 4, 4, 0.1))
मुझे पता है कि यह थोड़ी देर के लिए है, लेकिन नए पाठकों rplot()
को corrr
पैकेज ( https://cran.rstudio.com/web/packages/corrr/index.html ) से दिलचस्पी हो सकती है , जो प्लॉट के प्रकार का उत्पादन कर सकते हैं @daroczig उल्लेख , लेकिन एक डेटा पाइपलाइन दृष्टिकोण के लिए डिजाइन:
install.packages("corrr")
library(corrr)
mtcars %>% correlate() %>% rplot()
mtcars %>% correlate() %>% rearrange() %>% rplot()
mtcars %>% correlate() %>% rearrange() %>% rplot(shape = 15)
mtcars %>% correlate() %>% rearrange() %>% shave() %>% rplot(shape = 15)
mtcars %>% correlate() %>% rearrange(absolute = FALSE) %>% rplot(shape = 15)
Corrplot () से समारोह corrplot आर पैकेज भी एक correlogram प्लॉट करने के लिए इस्तेमाल किया जा सकता।
library(corrplot)
M<-cor(mtcars) # compute correlation matrix
corrplot(M, method="circle")
सहसंबंध मैट्रिक्स की गणना और कल्पना करने का वर्णन करने वाले कई लेख यहां प्रकाशित किए गए हैं:
एक अन्य समाधान जो मैंने हाल ही में सीखा है, वह एक इंटरेक्टिव हीटमैप है जो कि क्यूटचर्ट्स पैकेज के साथ बनाया गया है।
install.packages("qtlcharts")
library(qtlcharts)
iplotCorr(mat=mtcars, group=mtcars$cyl, reorder=TRUE)
नीचे दिए गए भूखंड की एक स्थिर छवि है।
आप पर इंटरैक्टिव संस्करण देख सकते हैं मेरे ब्लॉग । पंक्ति, स्तंभ और सेल मान देखने के लिए हीटमैप पर होवर करें। समूह द्वारा रंगीन प्रतीकों के साथ एक स्कैप्लेट को देखने के लिए एक सेल पर क्लिक करें (इस उदाहरण में, सिलेंडरों की संख्या 4 है, 4 लाल है, 6 हरा है, और 8 नीला है)। स्कैप्लेट में बिंदुओं पर मँडराकर पंक्ति का नाम देता है (इस मामले में कार का निर्माण)।
चूँकि मैं टिप्पणी नहीं कर सकता, मुझे अपना 2c उत्तर देना होगा awser के रूप में daroczig द्वारा ...
दीर्घवृत्त तितर बितर भूखंड वास्तव में दीर्घवृत्त पैकेज से है और इसके साथ उत्पन्न होता है:
corr.mtcars <- cor(mtcars)
ord <- order(corr.mtcars[1,])
xc <- corr.mtcars[ord, ord]
colors <- c("#A50F15","#DE2D26","#FB6A4A","#FCAE91","#FEE5D9","white",
"#EFF3FF","#BDD7E7","#6BAED6","#3182BD","#08519C")
plotcorr(xc, col=colors[5*xc + 6])
(मैन पेज से)
सुझाव के अनुसार - यहाँ दिए गए सुंदर चित्रों से उपयोगी हो सकता है