এক প্লটে অনেকগুলি ভেরিয়েবল ভিজ্যুয়ালাইজ করা


25

আমি সময়ের সাথে কিছু নির্দিষ্ট ভেরিয়েবলের মান (~ 15) কীভাবে পরিবর্তিত হয় তা দেখাতে চাই তবে আমি প্রতি বছরে কীভাবে ভেরিয়েবলগুলি একে অপরের থেকে পৃথক হয় তাও প্রদর্শন করতে চাই। সুতরাং আমি এই প্লটটি তৈরি করেছি:

এখানে চিত্র বর্ণনা লিখুন

এমনকি রঙিন স্কিম পরিবর্তন করার সময় বা বিভিন্ন লাইন / আকারের ধরণ যুক্ত করার পরেও এটিকে অগোছালো দেখাচ্ছে। এই ধরণের ডেটা ভিজ্যুয়ালাইজ করার আরও ভাল কোনও উপায় আছে কি?

আর কোড সহ পরীক্ষার ডেটা:

structure(list(Var = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 
6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 14L, 14L, 14L, 14L, 
14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 17L, 
17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L, 18L, 18L), .Label = c("A", 
"B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), class = "factor"), 
    Year = c(2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
    1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 
    2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
    1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 
    2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 
    1991L, 1993L, 1996L, 2000L, 2011L, 2015L, 1991L, 1993L, 1996L, 
    2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 
    2011L, 2015L), Val = c(25.6, 22.93, 20.82, 24.1, 24.5, 29, 
    25.55, 24.5, 24.52, 20.73, 25.8, 25.5, 29.5, 27.7, 25.1, 
    25, 24.55, 26.75, 25, 30.5, 27.25, 25.1, 22.4, 27.07, 26, 
    29, 27.2, 24.2, 23, 24.27, 27.68, 27, 30.5, 28.1, 24.9, 23.75, 
    22.75, 27.25, 25, 29, 28.45, 24, 20.25, 17.07, 24.45, 25, 
    28.5, 26.75, 24.9, 21.25, 20.65, 25.1, 24.5, 26.5, 25.35, 
    23.5, 21.93, 26.5, 24.5, 29, 29.1, 26.4, 28.1, 23.75, 26.5, 
    28.05, 27, 30.5, 25.65, 23.3, 23.25, 24.57, 26.07, 27.5, 
    28.85, 27.7, 22, 23.43, 26.88, 27, 30.5, 29.25, 28.1, 23, 
    23.8, 28.32, 27, 29.5, 29.15, 27.6)), row.names = c(1L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 35L, 
36L, 37L, 38L, 39L, 40L, 41L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
53L, 54L, 55L, 56L, 57L, 58L, 59L, 62L, 63L, 64L, 65L, 66L, 67L, 
68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 78L, 79L, 80L, 81L, 82L, 
83L, 84L, 87L, 88L, 89L, 90L, 91L, 92L, 95L, 96L, 97L, 98L, 99L, 
100L, 101L, 104L, 105L, 106L, 107L, 108L, 109L, 110L), na.action = structure(c(2L, 
3L, 11L, 12L, 33L, 34L, 42L, 43L, 51L, 52L, 60L, 61L, 76L, 77L, 
85L, 86L, 93L, 94L, 102L, 103L), .Names = c("2", "3", "11", "12", 
"33", "34", "42", "43", "51", "52", "60", "61", "76", "77", "85", 
"86", "93", "94", "102", "103"), class = "omit"), class = "data.frame", .Names = c("Var", 
"Year", "Val"))

2
আপনি কি ডেটা পোস্ট করতে পারেন? মোটামুটি অনুরূপ উদাহরণ খুঁজে পাওয়া যথেষ্ট সহজ তবে থ্রেডটি একত্রে আবদ্ধ রাখার জন্য খেলতে একই স্যান্ডবক্সযুক্ত লোকেরা সহায়তা করবে। এছাড়াও, গ্রিন জোনের তাৎপর্য কী?
নিক কক্স


@ নিককক্স শিওর, এর আগে চিন্তা করা উচিত ছিল! গ্রীন জোনটি অপরিহার্য না হওয়ায় ছেড়ে দিয়েছি (এটি কেবলমাত্র "পর্যাপ্ত" হিসাবে বিবেচিত মানগুলির পরিসীমা দেখায়)

উত্তর:


42

ভাগ্যক্রমে বা অন্যথায়, আপনার উদাহরণটি সর্বোত্তম আকারের (15 টি দলের প্রত্যেকের জন্য 7 টি মান) প্রথমে দেখানোর জন্য যে গ্রাফিকভাবে সমস্যা আছে; এবং দ্বিতীয়ত, অন্যান্য এবং মোটামুটি সহজ সমাধানগুলির অনুমতি দেওয়া। গ্রাফটি এক ধরণের যা প্রায়শই বিভিন্ন ক্ষেত্রের লোকেরা স্প্যাগেটি বলে , যদিও এটি সর্বদা স্পষ্ট নয় যে এই শব্দটি স্নেহময় বা আপত্তিজনক হিসাবে ব্যবহৃত হয়েছে কিনা। গ্রাফটি সমস্ত দলের সম্মিলিত বা পারিবারিক আচরণ প্রদর্শন করে তবে বিশদটি অনুসন্ধান করার জন্য এটি প্রদর্শন করা মোটামুটি হতাশ।

একটি স্ট্যান্ডার্ড বিকল্প হ'ল পৃথক প্যানেলগুলিতে পৃথক গোষ্ঠীগুলি দেখানো, তবে পরিবর্তে সুনির্দিষ্ট গ্রুপ-থেকে-গ্রুপের তুলনা করা কঠিন হতে পারে; প্রতিটি গোষ্ঠী অন্য গ্রুপগুলির প্রসঙ্গ থেকে আলাদা হয়।

সুতরাং কেন উভয় ধারণা একত্রিত করবেন না: প্রতিটি গ্রুপের জন্য একটি পৃথক প্যানেল, তবে অন্যান্য দলগুলিকে ব্যাকড্রপ হিসাবে দেখান? এটি গুরুতরভাবে গ্রুপটি হাইলাইট করার উপর এবং অন্যকে অবনমিত করার পক্ষে জড়িত, যা লাইন রঙ, বেধ ইত্যাদি ব্যবহারের ফলে এই উদাহরণে যথেষ্ট সহজ other

এখানে চিত্র বর্ণনা লিখুন

এই ক্ষেত্রে, সম্ভাব্য ব্যবহারিক বা বৈজ্ঞানিক গুরুত্ব বা আগ্রহের বিশদগুলি তুলে ধরা হয়েছে:

  1. আমাদের কাছে কেবলমাত্র এ এবং এম এর জন্য একটি মান have

  2. অন্যান্য সমস্ত ক্ষেত্রে আমাদের দেওয়া বছরের জন্য সমস্ত মান নেই।

  3. কিছু গোষ্ঠী উচ্চ, কিছু নিম্ন এবং আরও কিছু পরিকল্পনা করে।

আমি এখানে কোনও ব্যাখ্যার চেষ্টা করব না: ডেটা বেনামে রয়েছে, তবে এটি গবেষক যে কোনও ক্ষেত্রেই উদ্বেগের বিষয়।

আপনার সফ্টওয়্যারটিতে কী সহজ বা সম্ভব তা নির্ভর করে এখানে ছোট ছোট বিবরণ পরিবর্তন করার সুযোগ রয়েছে যেমন অক্ষের লেবেল এবং শিরোনামগুলি পুনরাবৃত্তি করা হয় কিনা (পক্ষে এবং বিপক্ষে উভয় পক্ষে সরল যুক্তি রয়েছে)।

বৃহত্তর বিষয়টি হ'ল এই কৌশলটি আরও সাধারণভাবে কতটা কাজ করবে। গ্রুপের সংখ্যা হ'ল প্রধান ড্রাইভার, প্রতিটি গ্রুপের পয়েন্টের সংখ্যার চেয়ে অনেক বেশি। মোটামুটিভাবে বলতে গেলে, পদ্ধতিটি প্রায় 25 টি গোষ্ঠী পর্যন্ত কাজ করতে পারে (একটি 5 x 5 প্রদর্শন, বলুন): আরও গোষ্ঠীগুলির সাথে, গ্রাফগুলি কেবল ছোট করা এবং পড়া আরও কঠিন হয়ে উঠবে না, এমনকি গবেষকরা সমস্ত স্ক্যান করার প্রবণতা হারিয়ে ফেলেন even প্যানেল। যদি কয়েকশো গ্রুপ (হাজার, ...) থাকে, তবে সাধারণত দেখানোর জন্য অল্প সংখ্যক গ্রুপ নির্বাচন করা প্রয়োজনীয়। কিছু "আদর্শ" এবং কিছু "চরম" প্যানেল নির্বাচন করার মতো মানদণ্ডের মিশ্রণের প্রয়োজন হবে; যা প্রকল্পের লক্ষ্য এবং প্রতিটি ডেটাসেটের জন্য কী বোঝায় সে সম্পর্কে কিছু ধারণা দ্বারা চালিত হওয়া উচিত। দক্ষ হতে পারে এমন আরেকটি পদ্ধতি হ'ল প্রতিটি প্যানেলে অল্প সংখ্যক সিরিজের উপর জোর দেওয়া। সুতরাং, যদি 25 টি বিস্তৃত গোষ্ঠী থাকে তবে প্রতিটি বিস্তৃত গোষ্ঠী অন্য সকলের সাথে ব্যাকড্রপ হিসাবে প্রদর্শিত হতে পারে। বিকল্পভাবে, কিছু গড় বা অন্যান্য সংক্ষিপ্তকরণ হতে পারে। (উদাঃ) প্রধান বা স্বতন্ত্র উপাদান ব্যবহার করা ভাল ধারণাও হতে পারে।

যদিও উদাহরণটি লাইন প্লটগুলির জন্য কল করে তবে নীতিটি স্বাভাবিকভাবেই অনেক বেশি সাধারণ। উদাহরণগুলি গুণিত করা যায়, স্ক্যাটার প্লট, মডেল ডায়াগনস্টিক প্লট ইত্যাদি

এই পদ্ধতির জন্য কিছু উল্লেখ [অন্যরা সর্বাধিক স্বাগত]:

কক্স, এনজে 2010. গ্রাফিং উপগ্রহ। স্টাটা জার্নাল 10: 670-681।

Knaflic, CN 2015. ডেটা সহ গল্পটি: ব্যবসায় পেশাদারদের জন্য একটি ডেটা ভিজ্যুয়ালাইজেশন গাইড। হোবোকেন, এনজে: উইলি

কোয়েঙ্কার, আর। 2005. কোয়ান্টাইল রিগ্রেশন। কেমব্রিজ: কেমব্রিজ বিশ্ববিদ্যালয় প্রেস। পৃষ্ঠা 12.1 দেখুন।

শোভাবিশ, জেএ 2014. ডেটা ভিজ্যুয়ালাইজ করার জন্য অর্থনীতিবিদদের গাইড। অর্থনৈতিক দৃষ্টিভঙ্গির জার্নাল 28: 209-234।

আনউইন, এ। 2015. আর। বোকা রেটনের সাথে গ্রাফিকাল ডেটা বিশ্লেষণ , এফএল: সিআরসি প্রেস।

ওয়ালগ্রেন, এ।, বি। ওয়ালগ্রেন, আর। পারসন, ইউ। জর্নার, এবং জে.এ.এ. Haaland। 1996. পরিসংখ্যান এবং ডেটা গ্রাফিং: আরও ভাল চার্ট তৈরি করা। নিউবারি পার্ক, সিএ: সেজ।

দ্রষ্টব্য: স্টাটাতে গ্রাফটি তৈরি করা হয়েছিল। subsetplotসঙ্গে প্রথম ইনস্টল করা আবশ্যক ssc inst subsetplot। আর থেকে ডেটা অনুলিপি এবং আটকানো হয়েছিল এবং মান লেবেল হিসাবে বছরগুলি দেখানোর জন্য সংজ্ঞায়িত করা হয়েছিল 90 95 00 05 10 15। মূল আদেশটি হ'ল

subsetplot connected Val Year, by(Var) c(L) lcolor(gs12) backdrop(line) xtitle("") combine(imargin(small)) subset(lcolor(blue) mcolor(blue))

ইডিআইটি অতিরিক্ত রেফারেন্স মে, সেপ্টেম্বর, ডিসেম্বর 2016; এপ্রিল, জুন 2017, ডিসেম্বর 2018, এপ্রিল 2019:

কায়রো, এ। 2016. সত্যবাদী শিল্প: ডেটা, চার্ট এবং যোগাযোগের জন্য মানচিত্র। সান ফ্রান্সিসকো, সিএ: নিউ রাইডার্স। p.211

ক্যামেস, জে। 2016. কার্যের ডেটা: মাইক্রোসফ্ট এক্সেলে কার্যকরী চার্ট এবং তথ্য গ্রাফিক্স তৈরির সেরা অভ্যাস । সান ফ্রান্সিসকো, সিএ: নিউ রাইডার্স। p.354

ক্যার, ডিবি এবং পিকল, এলডাব্লু 2010 Mic মাইক্রোম্যাপের সাথে ভিজ্যুয়ালাইজিং ডেটা প্যাটার্নস। বোকা রেটন, এফএল: সিআরসি প্রেস। p.85।

গ্রান্ট, আর। 2019. ডেটা ভিজ্যুয়ালাইজেশন: চার্ট, মানচিত্র এবং ইন্টারেক্টিভ গ্রাফিক্স। বোকা রেটন, এফএল: সিআরসি প্রেস। p.52।

কোপোনেন, জে এবং হিলডেন, জে। 2019. ডেটা ভিজ্যুয়ালাইজেশন হ্যান্ডবুক। এসপু: অ্যাল্টো এআরটিএস বই। P.101 দেখুন।

ক্রিবেল, এ। এবং মুরে, ই। 2018. # মেকওভারমোনডে: ডেটা ভিজ্যুয়ালাইজ এবং বিশ্লেষণ কীভাবে করা যায় তা উন্নত করা, এক সময়ে এক চার্ট। হোবোকেন, এনজে: জন উইলে। p.303।

রাউজিয়ার, এনপি, ড্রয়েটবুম, এম এবং বোর্ন, পিই 2014. আরও ভাল পরিসংখ্যানের জন্য দশটি সহজ নিয়ম। PLOS গণনামূলক জীববিজ্ঞান 10 (9): e1003833। doi: 10.1371 / Journal.pcbi.1003833 লিঙ্কটি এখানে

শোভাবিশ, জে। 2017. আরও ভাল উপস্থাপনা: বিদ্বান, গবেষক এবং উইংসদের জন্য একটি গাইড। নিউ ইয়র্ক: কলম্বিয়া বিশ্ববিদ্যালয় প্রেস। P.98 দেখুন।

উইকহাম , এইচ। 2016. ggplot2: ডেটা বিশ্লেষণের জন্য মার্জিত গ্রাফিক্স। ছাম: স্প্রিংগার। P.157 দেখুন।


+1, দুর্দান্ত, এমন কোনও আর বা এসএএস ফাংশন রয়েছে যা এই ধরণের চার্টটি করতে সক্ষম? এটা সত্যিই দুর্দান্ত।
পূর্বাভাসকারী

আমি আসলেই এই ধারণাটি পছন্দ করেছি! Ggplot2 ব্যবহার করে আর এ প্লট করার সর্বোত্তম উপায় সম্পর্কে কেবল অবাক হচ্ছেন। উত্তরটি গ্রহণ করার আগে আমি কিছুটা অপেক্ষা করব, আশা করি ঠিক আছে।

2
দুঃখিত, এসএএস-এ কীভাবে কিছু করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই। অবশ্যই স্টাটা কিছু করতে পারে, আর পাশাপাশি বা আরও ভাল করতে পারে, বা এর ব্যবহারকারীরা আমাকে বলতে থাকেন ....
নিক কক্স

@ নিককক্স মোটেও সমস্যা নয়, আমি এটি বুঝতে পেরেছি, এটি দেখতে সত্যিই দুর্দান্ত দেখাচ্ছে এবং এটি আমার উদ্দেশ্যটির জন্য উপযুক্ত।

@ নিককক্স, আরও দুটি তথ্যসূত্র হ'ল ১। ডব্লিউএস ক্লিভল্যান্ডের গ্রাফিং ডেটার উপাদানগুলির উপাদানসমূহ book নতুন বই, ২. ডেটা সহ গল্পটি: কোল নসবাউমার কানাফ্লিকের ব্যবসায়িক পেশাদারদের জন্য একটি ডেটা ভিজ্যুয়ালাইজেশন গাইড his এই বইটিতে (# ২) কেস স্টাডি রয়েছে অধ্যায়টিকে "স্প্যাগেটি গ্রাফ এড়ানোর কৌশল" বলা হয়।
পূর্বাভাসকারী

22

নিকের উত্তরের পরিপূরক হিসাবে সিমুলেটেড ডেটা ব্যবহার করে অনুরূপ প্লট তৈরির জন্য এখানে কিছু আর কোড রয়েছে:

library(ggplot2)

get_df <- function(label="group A", n_obs=10, drift=runif(1)) {
    df <- data.frame(time=seq(1, n_obs), label=label)
    df$y <- df$time * drift + cumsum(rnorm(n_obs))
    return(df)
}
df_list <- lapply(sprintf("group %s", toupper(letters[1:9])),
                  function(label) { get_df(label) })
df <- do.call(rbind, df_list)
df$label2 <- df$label

p <- (ggplot(df, aes(x=time, y=y, group=label2)) +
      geom_line(size=0.9, alpha=0.8,
                data=df[, c("time", "y", "label2")], color="grey") +
      geom_line(size=1.1, color="black") +
      ylab("") +
      theme_bw() +
      theme(panel.border=element_blank()) +
      theme(strip.background=element_blank()) +
      facet_wrap(~ label))
p
ggsave("example_facet.png", p, width=10, height=8)

উদাহরণ চক্রান্ত


6

যারা ggplot2আর এপ্রোচ ব্যবহার করতে চান তাদের facetshadeজন্য প্যাকেজের ফাংশনটি বিবেচনা করুন extracat। এটি কেবল লাইন প্লটের জন্য নয়, একটি সাধারণ পদ্ধতির প্রস্তাব করে। এখানে স্ক্যাটারপ্লটস ( এই পৃষ্ঠার পাদদেশ থেকে ) সহ একটি উদাহরণ রয়েছে :

data(olives, package="extracat")
library(scales)
fs1 <- facetshade(data = olives,
                  aes(x = palmitic, y = palmitoleic), f = .~Area)
fs1 + geom_point(colour = alpha("black", 0.05)) +
      geom_point(data = olives, colour = "red") +
      facet_wrap(f=~Area, nrow=3) + theme(legend.position="none")

এখানে চিত্র বর্ণনা লিখুন


সম্পাদনা: তার আগের উত্তর থেকে অ্যাড্রিয়ানের সিমুলেটেড ডেটাসেট ব্যবহার:

library(extracat)
facetshade(df, aes(x=time, y=y), f = .~label, bg.all = FALSE, keep.orig = TRUE) +
           geom_line(aes(x=time, y=y, group=orig.label),colour = alpha(1,0.3)) +
           geom_line(data=df, aes(colour=label), size = 1.2) + xlab("") + ylab("")

আর একটি পদ্ধতি হ'ল দুটি পৃথক স্তর আঁকা, একটি পটভূমির জন্য এবং একটি হাইলাইটেড কেসের জন্য। কৌশলটি হ'ল ফেসিং ভেরিয়েবলটি ব্যতীত ডেটাসেট ব্যবহার করে পটভূমি স্তরটি আঁকুন। অলিভ অয়েল ডেটাসেটের জন্য কোডটি হল:

data(olives, package="extracat")
ggplot(olives, aes(palmitic, palmitoleic)) + 
  facet_wrap(~Area, nrow=3) + 
  geom_point(data=olives %>% select(-Area), colour=alpha("black", 0.05)) + 
  geom_point(data=olives, colour="red") + 
  theme(legend.position="none")

1
এটি একটি দুর্দান্ত সাধারণ পদ্ধতির মতো বলে মনে হচ্ছে (+1) তবে বিশেষ উদাহরণটি আরও একটি ভিন্ন সমস্যার সাথে সম্পর্কিত। বিভিন্ন হাইলাইটেড অঞ্চলগুলির সাথে পুনরাবৃত্ত স্ক্রেটার প্লটের একটি গোছা সময়ের সিরিজ সম্পর্কে প্রশ্নটির পক্ষে কাজ করে না।
সেক্সটাস এম্পেরিকাস

@মার্টিন আসলে এটি এবং এটি অ্যাড্রিয়ানের সমাধানও। নোট করুন যে তিনি দুটি অভিন্ন লেবেলিং ভেরিয়েবল ব্যবহার করেছেন যাতে কোনও ব্যাকগ্রাউন্ড স্তরটিতে ফেলে দেওয়া যায়। কোডিং ধারণাটি নীচের পরিপাটি স্বরলিপি সহ আরও সুস্পষ্ট এবং যেমন প্রায়শই গ্রাফিক্সের মার্জিত বিন্যাসটি কোডের গুরুত্বপূর্ণ অংশগুলি মাস্ক করতে পারে। ggplot(df %>% select(-label), aes(x=time, y=y, group=label2)) + geom_line(alpha=0.8, color="grey") + labs(y=NULL) + geom_line(data=df, color="red") + facet_wrap(~ label)
অ্যান্টনি আনউইন

5

সিএইচ দ্বারা অনুপ্রাণিত একটি সমাধান এখানে দেওয়া হল। 11.3, উপর "টেক্সাস হাউজিং ডেটা" অধ্যায়, মধ্যে ggplot2 উপর হ্যাডলি আপনি Wickham বই । এখানে আমি প্রতিটি সময়ের সিরিজে একটি রৈখিক মডেল ফিট করি, অবশিষ্টাংশগুলি গ্রহণ করি (যা প্রায় 0 টি কেন্দ্রিক হয়) এবং অন্য রঙে একটি সংক্ষিপ্তরেখা আঁকুন।

library(ggplot2)
library(dplyr)
#works with dplyr version 0.4.3.9000 from Github (hadley/dplyr@4f2d7f8), or higher

df1 <- as.data.frame(list(Var = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 
                                 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 
                                 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 
                                 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 11L, 11L, 11L, 11L, 11L, 
                                 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 14L, 14L, 14L, 14L, 
                                 14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 17L, 
                                 17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L, 18L, 18L), .Label = c("A", 
                                                                                               "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
                                                                                               "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), class = "factor"), 
               Year = c(2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
                        1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 
                        2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
                        1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 
                        2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 
                        1991L, 1993L, 1996L, 2000L, 2011L, 2015L, 1991L, 1993L, 1996L, 
                        2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 
                        2011L, 2015L), 
               Val = c(25.6, 22.93, 20.82, 24.1, 24.5, 29, 
                       25.55, 24.5, 24.52, 20.73, 25.8, 25.5, 29.5, 27.7, 25.1, 
                       25, 24.55, 26.75, 25, 30.5, 27.25, 25.1, 22.4, 27.07, 26, 
                       29, 27.2, 24.2, 23, 24.27, 27.68, 27, 30.5, 28.1, 24.9, 23.75, 
                       22.75, 27.25, 25, 29, 28.45, 24, 20.25, 17.07, 24.45, 25, 
                       28.5, 26.75, 24.9, 21.25, 20.65, 25.1, 24.5, 26.5, 25.35, 
                       23.5, 21.93, 26.5, 24.5, 29, 29.1, 26.4, 28.1, 23.75, 26.5, 
                       28.05, 27, 30.5, 25.65, 23.3, 23.25, 24.57, 26.07, 27.5, 
                       28.85, 27.7, 22, 23.43, 26.88, 27, 30.5, 29.25, 28.1, 23, 
                       23.8, 28.32, 27, 29.5, 29.15, 27.6)), 
               row.names = c(1L, 4L, 
                           5L, 6L, 7L, 8L, 9L, 10L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
                           21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 35L, 
                           36L, 37L, 38L, 39L, 40L, 41L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
                           53L, 54L, 55L, 56L, 57L, 58L, 59L, 62L, 63L, 64L, 65L, 66L, 67L, 
                           68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 78L, 79L, 80L, 81L, 82L, 
                           83L, 84L, 87L, 88L, 89L, 90L, 91L, 92L, 95L, 96L, 97L, 98L, 99L, 
                           100L, 101L, 104L, 105L, 106L, 107L, 108L, 109L, 110L), 
               na.action = structure(c(2L, 
                          3L, 11L, 12L, 33L, 34L, 42L, 43L, 51L, 52L, 60L, 61L, 76L, 77L, 
                          85L, 86L, 93L, 94L, 102L, 103L), 
                .Names = c("2", "3", "11", "12","33", "34", "42", "43", "51", "52", "60", 
                           "61", "76", "77", "85", "86", "93", "94", "102", "103"), class = "omit"), 
                class = "data.frame", .Names = c("Var","Year", "Val"))


df1 %>%
        group_by(Var) %>%
        do(mutate(.,resid = resid(lm(Val ~ Year, data=., na.action = na.exclude)))) %>%
        ggplot(aes(Year, resid)) +
        labs(y=paste0("Val "), x="Year") +
        geom_line(aes(group = Var), alpha = 1/5) +
        geom_line(stat = "summary", fun.y = "mean", colour = "red")

এখানে চিত্র বর্ণনা লিখুন


1
এখানে মূল ধারণাটি মনে হচ্ছে আপনি চোখ এবং মনকে সহায়তা করার জন্য কোনওরকমের সংক্ষিপ্ত বক্ররেখা যুক্ত করতে পারেন। সম্মত, কিন্তু আপনার উত্তরে আপনি মূল ইউনিট এবং মানগুলি ছেড়ে যাওয়ার পরিবর্তে শিফট করার অর্থ (বা রেফারেন্স স্তর) 0 এ স্থানান্তরিত করার সময় বাণিজ্য বন্ধ করে দিতে পারেন। বিষয়-বিশেষজ্ঞ এবং / অথবা ক্লায়েন্টরা 24 বা 28 বা যে কোনও মান হিসাবে বিবেচনা করতে পারেন well স্বাভাবিকভাবেই এখানে ডেটা আলোচনার জন্য কেবল একটি বাহন তবে পয়েন্টটি অত্যন্ত সাধারণ।
নিক কক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.