ठीक है, एक प्रारंभिक बिंदु के रूप में, यहाँ कुछ नमूना डेटा है। प्रत्येक यादृच्छिक है, एक के साथ स्थानांतरित (2,2)।
df1 <-
data.frame(
x = rnorm(1000)
, y = rnorm(1000)
)
df2 <-
data.frame(
x = rnorm(1000, 2)
, y = rnorm(1000, 2)
)
यह सुनिश्चित करने के डिब्बे समान हैं, यह एक hexbin
वस्तु के निर्माण के लिए सबसे अच्छा है। इसे पूरा करने के लिए, मैं डेटा का डेटा रखने के लिए dplyr
के bind_rows
का उपयोग कर रहा हूं। डेटा को देखने के लिए डेटा से आया था (यदि आपके पास एक डेटािंग चर के साथ एक डेटा था। यह भी आसान होगा)।
bothDF <-
bind_rows(A = df1, B = df2, .id = "df")
bothHex <-
hexbin(x = bothDF$x
, y = bothDF$y
, IDs = TRUE
)
इसके बाद, हम प्रत्येक कोशिका के भीतर प्रत्येक की घटनाओं की गिनती करने के hexbin
और dplyr
का मिश्रण का उपयोग कर रहे हैं। सबसे पहले, एक टेबल बनाने के लिए डिब्बे पर लागू करें (यह सुनिश्चित करने के लिए कि सभी कॉलम पहले से ही एक कारक हैं, आवश्यक नहीं है, factor
का उपयोग करने की आवश्यकता है)। फिर, यह इसे सरल बनाता है और डेटा.फ्रेम बनाता है जिसे गणना में अंतर की गणना करने के लिए mutate
के साथ छेड़छाड़ की जाती है और फिर उस तालिका में शामिल हो जाती है जो प्रत्येक आईडी के लिए x और y मान देता है।
counts <-
hexTapply(bothHex, factor(bothDF$df), table) %>%
simplify2array %>%
t %>%
data.frame() %>%
mutate(id = as.numeric(row.names(.))
, diff = A - B) %>%
left_join(data.frame(id = [email protected], hcell2xy(bothHex)))
head(counts)
देता है:
A B id diff x y
1 1 0 7 1 -1.3794467 -3.687014
2 1 0 71 1 -0.8149939 -3.178209
3 1 0 79 1 1.4428172 -3.178209
4 1 0 99 1 -1.5205599 -2.923806
5 2 0 105 2 0.1727985 -2.923806
6 1 0 107 1 0.7372513 -2.923806
अंत में, हम, ggplot2
का उपयोग परिणामी डेटा प्लॉट करने के लिए के रूप में यह और अधिक नियंत्रण (और अधिक आसानी से गिनती से भर जाता है के रूप में एक अलग चर का उपयोग करने की क्षमता) की तुलना में प्रदान करता है hexbin
स्वयं।
counts %>%
ggplot(aes(x = x, y = y
, fill = diff)) +
geom_hex(stat = "identity") +
coord_equal() +
scale_fill_gradient2()
वहाँ से, यह, कुल्हाड़ियों, रंगों के साथ चारों ओर खेलने के लिए आसान है आदि
आप केवल एक ही भूखंड बनाया है। अनुरूपित डेटा बनाने के उदाहरण पढ़ें और अपने quesiton body में कोड जोड़ें जो दो डेटासेट उत्पन्न करता है जो आप के साथ काम कर रहे हैं। –