[R] plot.window arguments being ignored?

Bryan Hanson hanson at depauw.edu
Sun Nov 8 15:24:10 CET 2009


Dan, with base graphics, the> plot command determines the ylim, >lines can
only add lines/points to an exisiting graph, it cannot modify the existing
ylim.

You have two choices.  1) Before proceeding to the graph, determine which of
the two data sets has the greater range and call >plot with that range, then
the subsequent >lines command will "fit".  2) use a dlfferent graphics
system such as lattice or ggplot2.  In these packages, the entire graph is
computed in the background, then plotted explicitly.  So as you build up the
graph by adding things to it, the routines automatically resize as
necessary.  Both lattice and ggplot2 have books and very nice web sites
where you can find an example like yours.

Bryan
*************
Bryan Hanson
Acting Chair
Professor of Chemistry & Biochemistry
DePauw University, Greencastle IN USA



On 11/7/09 6:28 PM, "ARRRRR_user" <dweitzenfeld at gmail.com> wrote:

> 
> Hi,
> Why, when I run the script below, is my y-axis range command being ignored?
> I.e., the y axis graphed consistently fits the line specified in the plot
> command, but never fits the line I'm trying to add in the subsequent line
> command.
> This is my first R script, so if I'm doing anything else wacky that jumps
> out, please let me know.  I'm an advanced Stata user, but R is new to me.
> The script is designed to simulate a binary-choice decision field theory
> example with internally-controlled stop time, as per Neural Networks 19
> (2006) 1047-1058.
> Thanks in advance!!
> -Dan
> 
> 
> #-----------------
> # Starting preference state; two choices
> preference<-c(0,0)
> # Preference threshold; when one of the preference states exceeds this
> threshhold, deliberation stops
> theta<- 2
> # Contrast matrix
> contrast<-array(c(1, -1, -1, 1), dim=c(2,2))
> # Value Matrix; three possible states of the world
> value<-array(c(1,0, 0, 1, .5,.5), dim=c(2, 3))
> # Feedback Matrix
> feedback<-array(c(1, .5, .5, 1), dim=c(2,2))
> 
> # Time
> t<- array(0, dim=c(1,1))
> 
> # Arrays to keep track of history for graphing
> time_for_graph<-array(t, dim=c(1,1))
> preference_for_graph<-array(preference, dim=c(1,2))
> 
> # Moving through time until preference crosses the threshold theta
> while (preference[1]<theta && preference[2]<theta) {
> 
> #stochastic weights for this time period
> weight<-rnorm(3,0,1)
> 
> #updating preference
> preference<-feedback%*%preference + contrast%*%value%*%weight
> 
> #updating history
> t<-t+1
> time_for_graph<-rbind(time_for_graph, t)
> preference_for_graph<-rbind(preference_for_graph, array(preference,
> dim=c(1,2)))
> 
> #updating graph ranges
> ry<-range(preference_for_graph)
> rx<-range(time_for_graph)
> 
> #updating graph 
> plot(time_for_graph[,1], preference_for_graph[,1], type="b",
> plot.window(rx, ry), xlab="Time", ylab="Preference")
> lines(time_for_graph[,1], preference_for_graph[,2], type="b", col="red",
> ylim=ry)
> }
> #-------------




More information about the R-help mailing list