z
पर छानने अपने वास्तविक उपयोग के मामले को कवर करता है? उदाहरण के लिए:
library(tidyverse)
df = data.frame(x = 1:5, y = 1:5, z = c('a', 'a', 'a', 'b', 'b'))
ggplot(df %>% filter(z %in% z[between(x,1,2.5)]),
aes(x, y, col = z)) +
geom_line() + geom_point() +
coord_cartesian(xlim = c(1, 2.5))
या ऐसे फ़ंक्शन में जिसे उपयोगकर्ता द्वारा दर्ज किए गए सौंदर्य चर के लिए सामान्यीकृत किया जा सकता है। (मैं भी साजिश क्षेत्रों है कि कोई डेटा बिंदुओं को शामिल में भी लाइनों साजिश प्रक्षेप उपयोग करने के लिए समारोह को नवीनीकृत किया है, जब तक कि कम से कम एक अंक के बीच की रेखा को जोड़ने की साजिश क्षेत्र से होकर गुजरता है।)
my_plot = function(xrng, data=df, step=0.01) {
levs = unique(data[["z"]])
n = length(levs)
# Generate interpolated data frame so we can plot lines even if
# no points appear in the graph region
dat_interp = split(data, data$z) %>%
map_df(function(d) {
x = seq(min(d$x), max(d$x), step)
data.frame(z=rep(unique(d$z), each=length(x)),
x, y=rep(approx(d$x, d$y, xout=x)$y, n))
})
ggplot(dat_interp %>% filter(z %in% z[between(x,xrng[1],xrng[2])]),
aes(x, y, col = z)) +
geom_point(data=data %>% filter(z %in% z[between(x,xrng[1],xrng[2])])) +
geom_line() +
coord_cartesian(xlim = xrng) +
scale_color_manual(values=setNames(hcl(seq(15,375,length=n+1)[1:n],100,65), levs))
}
gridExtra::grid.arrange(
my_plot(c(1,2.5)),
my_plot(c(1,4)),
my_plot(c(3,4)),
my_plot(c(4.3,6)),
my_plot(c(1.1,1.6)),
my_plot(c(4.2,4.9)))
यदि आपके पास दृश्यमान साजिश क्षेत्र के बाहर बिंदु हैं, जो ज़ूम करने के बाद मामला है, तो सभी अलग-अलग बिंदु वर्ग दिखाएं डिफ़ॉल्ट व्यवहार है। के बीच (एक्स, इस प्रकार प्रश्न – Heikki
@Heikki haha, ठीक है, यह मेरे द्वारा वांछित नहीं है 1,2))%>% ggplot (एईएस (एक्स, वाई, कोल = जेड)) + geom_point() ' – eddi
आप 'shiny' से इस्तेमाल कर सकते हैं क्या लौटाई गई बल्कि उपयोग करते हुए निर्दिष्ट से डेटा को फ़िल्टर करने' ' – bouncyball