में तीरों की खोज मैं ggplot2 में तीरों के साथ एक साजिश बनाने की कोशिश कर रहा हूं, जो कुछ ऐसा दिख रहा है, जिसे बेस आर ग्रैपिक्स का उपयोग करके बनाया गया था। (रंग महत्वपूर्ण नहीं हैं)ggplot2 geom_segment()
ggplot2 का उपयोग करना:
library(ggplot2)
library(scales)
library(grid)
df3 <- structure(list(value1 = c(51L, 57L, 59L, 57L, 56L, 56L, 60L,
66L, 61L, 61L), value2 = c(56L, 60L, 66L, 61L, 61L, 59L, 61L,
66L, 63L, 63L), group = c("A", "B", "C", "D", "E", "A", "B",
"C", "D", "E"), time = c("1999", "1999", "1999", "1999", "1999",
"2004", "2004", "2004", "2004", "2004"), y_position = c(1L, 2L,
3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L)), .Names = c("value1", "value2",
"group", "time", "y_position"), row.names = c(NA, -10L), class = "data.frame")
ggplot(df3, aes(x = value1, y = y_position, group = time, color = time)) +
geom_segment(x = min(df3$value1, df3$value2), xend = max(df3$value1, df3$value2),
aes(yend = y_position), color = "lightgrey", size = 19) +
scale_y_continuous( labels = df3$group, breaks = df3$y_position) +
theme_classic() + theme(axis.line = element_blank(), axis.title = element_blank() ) +
geom_segment(aes(yend = y_position, xend = value2, color = time, group = time), size = 19, alpha = 0.9,
arrow = arrow(length = unit(40, "points"),type = "closed", angle = 40) )
मैं इस मिल:
समस्या यह है कि तीर (गलत लग रही है कि में है वे पहली साजिश की तरह मत दिखो)। Geom_segment() का प्रयोग करना महत्वपूर्ण नहीं है।
इस सवाल का जवाब दे सकता है, लेकिन मैं कुछ कम hacky के लिए उम्मीद की गई थी: Specifying gpar settings for grid arrows in R
क्या दूसरा तीर शुरू करना संभव है जहां पहला वाला, स्वचालित रूप से समाप्त होता है, या मुझे मैन्युअल रूप से ऐसा करना पड़ता है? –
मुझे नहीं लगता कि यह आसानी से रasmस किया जा सकता है। यदि आप देखते हैं कि तीर का अंत वास्तविक xend स्थिति से परे चला जाता है, लेकिन साजिश की चौड़ाई पर कितनी दूर (मूल पैमाने पर) निर्भर करता है। इसलिए दूसरे तीर के लिए प्रारंभ स्थिति निर्दिष्ट करना मुश्किल होगा (अगर कोई दिखा सकता है तो अच्छा होगा)। शायद, एक त्वरित फिक्स स्तर को उलटना होगा ताकि दूसरा तीर पहले/के नीचे हो? – user20650
@ user20650 दुर्भाग्य से ऐसा लगता है कि आपका बहुत अच्छा जवाब अब 'ggplot 2.2.0' में काम नहीं करता है। यदि आपके पास अपना उत्तर अपडेट करने का कोई समय और संभावना है, तो इसकी अत्यधिक सराहना की जाएगी। अग्रिम में धन्यवाद। – Henrik