/ / ggplot2: किंवदंती में लाइन प्रकार + क्रम को कैसे समायोजित करें? - आर, ggplot2

ggplot2: किंवदंती में लाइन प्रकार + ऑर्डर कैसे समायोजित करें? - आर, ggplot2

मैं में linetypes समायोजित करना चाहते हैंनिम्नलिखित ggplot। इस प्रकार मैं लाइन प्रकार का प्रतिनिधित्व करने के लिए data.frame df में एक और कॉलम पेश करता हूं, लेकिन एक बार जब मैं इसे एक कारक के रूप में परिवर्तित करता हूं तो "विधि" के बजाय लीनिपाइप लीजेंड में दिखाई देता है ... (परीक्षण 3 देखें)।

मैं किंवदंती में "विधि" कैसे प्राप्त कर सकता हूं? अंत में मैं सक्षम होना चाहूंगा

  1. स्वतंत्र रूप से linetype चुनें,
  2. स्वतंत्र रूप से उस क्रम का चयन करें जिसमें ये लिनेटेप्स कथा में दिखाई देते हैं, और
  3. किंवदंती पाठ के रूप में इसी "विधि" को दिखाया गया है।

मेरे प्रयास यहां दिए गए हैं:

require(ggplot2)
set.seed(1)
df <- data.frame(x=c(1:4, 2:5),
method=rep(c("a", "b"), each=4),
lt=rep(c(5,3), each=4),
value=rep(c(0,1), each=4)+runif(8))

## trial 1:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=method))
# fine, but not the linetypes I would like to have

## trial 2:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=lt))
# correct linetypes, but no legend

## trial 3:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=as.factor(lt)))
# legend, but not the correct one (I would like to have the "group"ing
# variable "method" in the legend as in trial 1)

उत्तर:

उत्तर № 1 के लिए 16

उपयोग method के रूप में linetype, लेकिन तब मैन्युअल रूप से आप चाहते हैं लाइनों के प्रकार के लिए यह नक्शा। आप इस तरह से एक और चर पेश करने की जरूरत नहीं है।

ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(linetype=method)) +
scale_linetype_manual(breaks=c("a","b"), values=c(5,3))

यहां छवि विवरण दर्ज करें