আর এ কার্নেলের প্রস্থ পরিবর্তনের প্রভাব অ্যানিমেটিং করা হচ্ছে


10

আমার কাছে কিছু তথ্য আছে, একটি তালিকায় সঞ্চিত। মনে

d <- c(1,2,3,4) 

যদিও এটি আমার ডেটা নয়। আমি যদি তারপর কমান্ড লিখুন

 plot(density(d, kernel="gaussian", width=1))

তারপরে আমি কার্নেলের সম্ভাব্যতা ঘনত্বের প্রাক্কলন পাই, যেখানে কার্নেলটি সাধারণ মানের। আমি যদি 1 টি অন্য সংখ্যার সাথে প্রতিস্থাপন করি তবে অবশ্যই চিত্র পরিবর্তন হয়।

আমি যা করতে চাই তা হল একটি ভিডিও বা অ্যানিমেশন তৈরি করা যাতে প্রতিটি ফ্রেমই এরকম একটি প্লট, তবে কার্নেলের ব্যান্ডউইথ ফ্রেম থেকে ফ্রেমে পরিবর্তিত হয়, যার ফলে ব্যান্ডউইথ পরিবর্তন করার প্রভাব প্রদর্শন করা হয়। কিভাবে আমি এটি করতে পারব?

(যদি আর সম্পর্কে প্রশ্ন জিজ্ঞাসা করার উপযুক্ত জায়গা না হয় তবে আমার ক্ষমাপ্রার্থনা)

উত্তর:


11

এটি আপনার শেষ লক্ষ্যটি কী তা নিয়ে কিছুটা নির্ভর করে।

রিয়েল-টাইম বিক্ষোভগুলির জন্য দ্রুত এবং মলিন হ্যাক

Sys.sleep(seconds)এমন একটি লুপ ব্যবহার করা যেখানে secondsফ্রেমের মধ্যে সেকেন্ডের সংখ্যা নির্দেশ করে একটি কার্যকর বিকল্প। প্রত্যাশার সাথে আচরণ করার জন্য আপনাকে আপনার কলটিতে xlimএবং ylimপরামিতিগুলি সেট plotকরতে হবে।

এখানে কিছু সহজ বর্ধিত কোড।

# Just a quick test of Sys.sleep() animation

x <- seq(0,2*pi, by=0.01)
y <- sin(x)
n <- 5
pause <- 0.5

ybnds <- quantile(n*y, probs=c(0,1))
x11()

# Draw successively taller sinewaves with a gradually changing color
for( i in 1:n )
{
    plot(x, i*y, type="l", lwd=2, ylim=ybnds, col=topo.colors(2*n)[i])
    Sys.sleep(pause)
}

এটি বেশ ভালভাবে কাজ করে, বিশেষত উইন্ডোটিং সিস্টেম হিসাবে এক্স-উইন্ডোজ ব্যবহার করে। quartz()দুর্ভাগ্যক্রমে আমি আবিষ্কার করেছি যে ম্যাকস সুন্দর খেলছে না।

অ্যানিমেটেড জিআইএফ

আপনার যদি এমন কিছু প্রয়োজন হয় যা পুনরায় বিতরণ করা যায়, ওয়েবপৃষ্ঠায় পোস্ট করা যায় ইত্যাদি ইত্যাদি, ক্যাটুলস প্যাকেজে write.gifফাংশনটি দেখুন । সহায়তা প্রদর্শন করা বেশ কয়েকটি অ্যানিমেশন সহ বেশ কয়েকটি দুর্দান্ত উদাহরণ দেয় — ম্যান্ডেলব্রোট সেটটি ব্যবহার করে বেশ চমৎকার উদাহরণ।write.gif

আরও দেখুন এখানে এবং এখানে

আরও সূক্ষ্ম সুরযুক্ত নিয়ন্ত্রণ এবং ফ্যানসিয়ার অ্যানিমেশন

একটি অ্যানিমেশন প্যাকেজ রয়েছে যা দেখতে বেশ সক্ষম। যদিও আমি নিজে এটি ব্যবহার করি নি, তাই আমি কোনওভাবেই কোনও বাস্তব সুপারিশ দিতে পারি না।

আমি আছে এই প্যাকেজ থেকে আউটপুট কয়েক ভাল উদাহরণ দেখা যায় এবং তারা বেশ সুন্দর দেখুন। সম্ভবত একটি "হাইলাইটস" হ'ল একটি পিডিএফটিতে অ্যানিমেশন এম্বেড করার ক্ষমতা।


কাজ করে মনে হচ্ছে। আমি যে ক্লাসটি শিখিয়ে চলেছি সেখানে বিক্ষোভের জন্য ব্যবহার করার জন্য আমি দ্রুত এবং নোংরা হ্যাকের সন্ধান করছি, তবে আমি যদি এটি কোনও ওয়েবপৃষ্ঠায় পোস্ট করতে পারি তবে আরও ভাল।
মাইকেল লুগো

কোয়ার্টজ এর জন্য, বিদ্যমান প্লটের উপরে একটি সাদা আয়তক্ষেত্র আঁকতে দ্রুত এবং তারপরে কেবল লাইনগুলি আবার আঁকুন। tourr:animate_distএই পদ্ধতির উদাহরণ দেখুন ।
হ্যাডলি

7

যাওয়ার এক উপায় হ'ল ইহুই জির দুর্দান্ত অ্যানিমেশন প্যাকেজটি ব্যবহার করা । আমি আমার সার্বজনীন ড্রপবক্স অ্যাকাউন্টে খুব সাধারণ উদাহরণটি আপলোড করেছি: ঘনত্ব প্লট (আমি এই উদাহরণটি 3 দিনের মধ্যে সরিয়ে দেব)। আপনি যেটা খুঁজছিলেন এটাই কি সেটা?

অ্যানিমেশনটি নিম্নলিখিত আর কোড ব্যবহার করে তৈরি করা হয়েছিল:

library(animation)
density.ani <- function(){
    i <- 1  
    d <- c(1,2,3,4) 
    while (i <= ani.options("nmax")) {
      plot(density(d, kernel="gaussian", bw = i), ylim = c(0, 0.25))
      ani.pause()
      i <- i + 1
    }
}

saveHTML({
par(mar = c(5, 4, 1, 0.5))
density.ani()
}, nmax = 30, title = "Changing kernel width")

5

কেবল সম্পূর্ণতার স্বার্থে, আপনার যদি শ্রেণি প্রদর্শনের জন্য এটির প্রয়োজন হয়, আমি আর manipulateপ্যাকেজটিও উল্লেখ করব যা আরস্টুডিও সহ আসে । মনে রাখবেন যে এই প্যাকেজটি আরস্টুডিও ইন্টারফেসের উপর নির্ভরশীল, সুতরাং এটি এর বাইরে কাজ করবে না।

manipulateবেশ দুর্দান্ত কারণ এটি প্লটটিতে যে কোনও উপাদান হস্তক্ষেপ করতে দ্রুত কিছু স্লাইডার তৈরি করতে দেয়। এটি ক্লাসে কিছু সহজ এবং বাস্তব-সময় প্রদর্শনের অনুমতি দেবে ।

manipulate(
  plot(density(1:10, bw)),
  bw = slider(0, 10, step = 0.1, initial = 1)) 

অন্যান্য উদাহরণ এখানে


4

এখানে অন্য পদ্ধতির:

library(TeachingDemos)

d <- c(1,2,3,4)

tmpfun <- function(width=1, kernel='gaussian'){
    plot(density(d, width=width, kernel=kernel))
}

tmplst <- list( width=list('slider', init=1, from=.5, to=5, resolution=.1),
    kernel=list('radiobuttons', init='gaussian', values=c('gaussian',
        "epanechnikov","rectangular","triangular","biweight","cosine",
        "optcosine")))

tkexamp( tmpfun, tmplst, plotloc='left' )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.