আর ব্যবহার করে "সমান্তরাল সেট" প্লট তৈরি করা সম্ভব?


16

টর্মোড প্রশ্নের ( এখানে পোস্ট করা ) ধন্যবাদ আপনাকে সমান্তরাল সেট প্লট জুড়ে এসেছিল । এটি কীভাবে দেখাচ্ছে তার উদাহরণ এখানে: এখানে চিত্র বর্ণনা লিখুন (এটি টাইটানিক ডেটাসেটের একটি দৃশ্যায়ন Showing

আমি আর এর সাথে এই জাতীয় প্লটটি পুনরুত্পাদন করতে সক্ষম হতে চাই? এটা কি সম্ভব?

ধন্যবাদ, তাল


1
গ্রাফিক্স সম্পর্কিত ধারণাগুলির জন্য, আমি সর্বদা আর গ্রাফ গ্যালারী পরীক্ষা করি। সেখান থেকে এমন কিছু যা আপনার কাছে যা চেয়েছিলেন তার মতো: আর গ্রাফ গ্যালারী সমান্তরাল । আমি ট্যাগ মেঘে সমান্তরালে ক্লিক করে এটি পেয়েছি, তবে আরও ভাল বিকল্প থাকতে পারে।
নিক সাব্বে

1
ধন্যবাদ নিক। তবে কোডটি মুছে ফেলা ব্যতীত শ্রেণিবদ্ধ তথ্যগুলির জন্য এটি কাজ করবে না (এটি এটি তৈরি করার জন্য সম্ভবত ফাংশনগুলির সেরা বেস নয়)। আমি আশা করি ইতিমধ্যে কেউ এরকম কিছু করেছে ...
তাল গ্যালিলি

উত্তর:


25

এখানে কেবল বেস গ্রাফিক্স ব্যবহার করে একটি সংস্করণ দেওয়া হয়েছে, হ্যাডলির মন্তব্যে ধন্যবাদ। (পূর্ববর্তী সংস্করণের জন্য, সম্পাদনা ইতিহাস দেখুন)।

তৃতীয় চেষ্টা

parallelset <- function(..., freq, col="gray", border=0, layer, 
                             alpha=0.5, gap.width=0.05) {
  p <- data.frame(..., freq, col, border, alpha, stringsAsFactors=FALSE)
  n <- nrow(p)
  if(missing(layer)) { layer <- 1:n }
  p$layer <- layer
  np <- ncol(p) - 5
  d <- p[ , 1:np, drop=FALSE]
  p <- p[ , -c(1:np), drop=FALSE]
  p$freq <- with(p, freq/sum(freq))
  col <- col2rgb(p$col, alpha=TRUE)
  if(!identical(alpha, FALSE)) { col["alpha", ] <- p$alpha*256 }
  p$col <- apply(col, 2, function(x) do.call(rgb, c(as.list(x), maxColorValue = 256)))
  getp <- function(i, d, f, w=gap.width) {
    a <- c(i, (1:ncol(d))[-i])
    o <- do.call(order, d[a])
    x <- c(0, cumsum(f[o])) * (1-w)
    x <- cbind(x[-length(x)], x[-1])
    gap <- cumsum( c(0L, diff(as.numeric(d[o,i])) != 0) )
    gap <- gap / max(gap) * w
    (x + gap)[order(o),]
  }
  dd <- lapply(seq_along(d), getp, d=d, f=p$freq)
  par(mar = c(0, 0, 2, 0) + 0.1, xpd=TRUE )
  plot(NULL, type="n",xlim=c(0, 1), ylim=c(np, 1),
       xaxt="n", yaxt="n", xaxs="i", yaxs="i", xlab='', ylab='', frame=FALSE)
  for(i in rev(order(p$layer)) ) {
     for(j in 1:(np-1) )
     polygon(c(dd[[j]][i,], rev(dd[[j+1]][i,])), c(j, j, j+1, j+1),
             col=p$col[i], border=p$border[i])
   }
   text(0, seq_along(dd), labels=names(d), adj=c(0,-2), font=2)
   for(j in seq_along(dd)) {
     ax <- lapply(split(dd[[j]], d[,j]), range)
     for(k in seq_along(ax)) {
       lines(ax[[k]], c(j, j))
       text(ax[[k]][1], j, labels=names(ax)[k], adj=c(0, -0.25))
     }
   }           
}

data(Titanic)
myt <- subset(as.data.frame(Titanic), Age=="Adult", 
              select=c("Survived","Sex","Class","Freq"))
myt <- within(myt, {
  Survived <- factor(Survived, levels=c("Yes","No"))
  levels(Class) <- c(paste(c("First", "Second", "Third"), "Class"), "Crew")
  color <- ifelse(Survived=="Yes","#008888","#330066")
})

with(myt, parallelset(Survived, Sex, Class, freq=Freq, col=color, alpha=0.2))

হারুন, বাহ, চমত্কার উত্তর - আমি আশা করি আমি এটি দুটি বার ভি চিহ্নিত করতে পারি। ধন্যবাদ!
তাল গালিলি

2
আমি খুশি তুমি এটা পছন্দ করেছো. এটা মজার ছিল. :) একমাত্র কৌশলগত অংশটি সেই জায়গাগুলি পাচ্ছে যেখানে বারগুলি শুরু হওয়া উচিত এবং শেষ হওয়া উচিত (যা getpসাব - ফাংশনে রয়েছে); বাকিটি কেবল বহুভুজ অঙ্কন করছে।
অ্যারন স্ট্যাক ওভারফ্লো ছেড়ে

1
আর একটি panel.textলাইন। সম্পাদনা দেখুন।
হারুন স্ট্যাক ওভারফ্লো ছেড়েছে

1
আপনি বেস গ্রাফিকগুলিতে স্বচ্ছতাও করতে পারেন।
হ্যাডলি

2
তুমি সঠিক. আমি এটি সম্পর্কে সম্পূর্ণরূপে ভুলে যাচ্ছিলাম, কাজগুলি করার জালিকভাবে অভ্যস্ত। আগ্রহী অন্যদের জন্য, আপনি আপনার রঙের স্ট্রিংয়ে আরও কয়েকটি অক্ষর যুক্ত করুন, উদাহরণস্বরূপ #FF000080,। ?rgbবিস্তারিত আছে
অ্যারন

12

অ্যারোন কোডের ভিত্তিতে আমি "পলল চিত্র" নামে কিছু বিকাশ করেছি। Http://bc.bojanorama.pl/2014/03/alluvial-diagrams/ দেখুন উদাহরণ নিচে:

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


আমি আর ব্লগে আপনার পোস্ট দেখেছি। ধন্যবাদ মাইকেল
তাল গালিলি

1
অফিসিয়াল প্যাকেজ: cran.r-project.org/web/packages/alluvial
ওরিওন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.