मैं इस कोड से उत्पन्न कथानक में एक किंवदंती जोड़ना चाहूंगा:

library(ggplot2)

v1 <- c(4.5, 4.5, 4.5, 5)
v2 <- c(3.5, 3, 3, 3.5)
v3 <- c(3, 4.5, 4, 3)
afname <- c(1, 2, 3, 4)

df <- data.frame(v1, v2, v3, afname)

df$afname <- as.factor(df$afname)

ggplot(df, aes(x = afname, group = 1)) +
  geom_line(aes(y = v1), size= 1, color = "blue") +
  geom_line(aes(y = v2), size= 1, color = "red") +
  geom_line(aes(y = v3), size= 1, color = "green") +
  ylim(2, 5) +
  ylab("vraag")

यह कैसे किया जाएगा?

0
Ruud Verhoef 15 मई 2020, 17:00
आशा है कि यह उत्तर मदद करता है: /10349206/…
 – 
Chris
15 मई 2020, 17:04

2 जवाब

सबसे बढ़िया उत्तर

एक तरीका यह है कि डेटा को पिवट किया जाए ताकि आप ggplot की मैपिंग का उपयोग कर सकें:

library(ggplot2)
library(dplyr)
library(tidyr)
df %>%
  pivot_longer(-afname,names_to = "group") %>% 
ggplot(aes(x = as.numeric(afname), y = value, color = group)) +
  geom_line() +
  scale_color_discrete(labels = c("Label 1","Label 2", "Label 3")) + 
  ylim(2, 5) +
  ylab("vraag") + xlab("afname")

enter image description here

1
Ian Campbell 15 मई 2020, 17:10
चटकाना! वही समाधान सेकंड अलग!
 – 
Allan Cameron
15 मई 2020, 17:13
2
नहीं - मुझे आपका पहला प्रयास थोड़ा बेहतर लगता है - मैंने इसके बजाय अपना हटा दिया है।
 – 
Allan Cameron
15 मई 2020, 17:15

आप अनुसरण कोड का उपयोग कर सकते हैं, जो पहले आपके डेटा को tidy डेटासेट में बदल देता है: क्योंकि यही ggplot अपेक्षा करता है। इस कारण से, हम tidyr से gather का उपयोग करते हैं

आपका डेटा इस तरह दिखता था:

df
   v1  v2  v3 afname
1 4.5 3.5 3.0      1
2 4.5 3.0 4.5      2
3 4.5 3.0 4.0      3
4 5.0 3.5 3.0      4

इकट्ठा करने के बाद यह निम्न जैसा दिखता है:

df2
   afname Group vraag
1       1    v1   4.5
2       2    v1   4.5
3       3    v1   4.5
4       4    v1   5.0
5       1    v2   3.5
6       2    v2   3.0
7       3    v2   3.0
8       4    v2   3.5
9       1    v3   3.0
10      2    v3   4.5
11      3    v3   4.0
12      4    v3   3.0

तो निम्नलिखित कोड किंवदंती के साथ वांछित साजिश का उत्पादन करता है (जीजीप्लॉट द्वारा आपके बिना स्पष्ट रूप से इसके लिए कोडिंग के द्वारा उत्पन्न)

library(ggplot2)
library(tidyr)

df2 <- gather(df, Group, vraag, -afname)
ggplot(df2, aes(x = afname, y= vraag, col = Group, group = Group)) + 
  geom_line() +
  scale_y_continuous(limits = c(2,5))

यह निम्नलिखित साजिश पैदा करता है:

enter image description here

1
KoenV 15 मई 2020, 17:46