2016-06-01 8 views
0

Ja, eine ähnliche Frage wurde hier NetLogo: histogram relative frequency gestellt, aber soweit ich weiß, wurde keine Antwort gegeben. Darf ich es noch einmal fragen? Ich hätte unter der Frage einen Kommentar hinzugefügt, aber das darf ich nicht.Netlogo: Plot relativen Frequenz

Ich möchte die relative Häufigkeit von Patches mit einer bestimmten Farbe gegen zunehmende Entfernung von einer Schildkröte plotten. Was ich bisher versucht habe:

ask turtle [ 
    set-current-plot "plot 1" 
    set-plot-y-range 0 1 
    set-plot-pen-mode 1 
    histogram [distance myself] of patches with [pcolor = red]] 

Das gibt mir nur die absolute Frequenz. Ich möchte die relative Häufigkeit jeder Patch-Farbe gegen die zunehmende Entfernung von einer Schildkröte darstellen. Also im Abstand = 1 weg von der Schildkröte, wie viele Patches aus der Gesamtzahl der Nein. Patches sind rot. Ich habe versucht, eine bestimmte Liste hinzuzufügen, aber es gab bestimmte Syntaxprobleme, da das primitive Histogramm eine Liste erwartet. Ich würde denken, dass es eine einfachere Möglichkeit gibt, die Y-Achse zu setzen (absolute Vorkommen/Gesamtzahl der Patches im Abstand x), also habe ich das Netlogo-Wörterbuch durchgesehen, aber nicht etwas gefunden, das die Y-Achse unter dem Plot-Set einrichtet Befehle

Ich würde mich über Ratschläge in dieser Angelegenheit freuen! Vielen Dank für Ihre Zeit.

+0

Kannst du ein Beispiel geben? Ich bin nicht sicher, was Sie meinen, indem Sie die relative Häufigkeit der Patches grafisch darstellen ... Sie müssen etwas genauer sein. – mattsap

+0

Um die Syntaxprobleme zu beheben: histogram [(distance myself)/count patches mit [distance myself = 1]] von Patches mit [pcolor = red] Sie können jedoch eine Division durch 0 Fehler haben, die Sie vielleicht mit einem behandeln möchten ifelse-Wert. – mattsap

+0

Hey Mattsap Ich habe meine Qns bearbeitet, um die Klarheit zu verbessern. Danke :) – lyh198

Antwort

0

Es klingt, als ob Sie den Anteil von Rot zu den gesamten Patches über die Entfernung darstellen möchten. Sie würden kein Histogramm dafür verwenden ...

Stattdessen würden Sie es grafisch darstellen.

Sie müssen die Entfernung des entferntesten Patches erhalten. Dann berechnen Sie für jede Entfernung den Anteil von Rot an der Gesamtzahl der Patches in dieser Entfernung.

Um Ihr Leben einfacher, machen Sie die Abstände runden möchten, da eine Schildkröte nicht in der Mitte aus dem Pflaster sein könnte (dh, wenn die Schildkröte hat XCOR 0,5 statt 0 oder 1.)

to setup 
    clear-all 

    crt 1 [ setxy random-xcor random-ycor] 
    ask patches [ set pcolor ifelse-value (random 100 < 30) [red][black]] 

    ask turtle 0 
    [ 
    let max-distance round max [distance myself] of patches 
    set-current-plot "example-plot" 
    set-plot-x-range 0 max-distance 
    set-plot-y-range 0 1 
    foreach n-values max-distance [?] 
    [ 
    let percent-red (count patches with [ round (distance myself) = ? and pcolor = red])/(count patches with [ round (distance myself) = ?]) 
    plotxy ? percent-red 
    ] 

    ] 

end