Skip to content

Fine control of plot

5 messages · Sarah Goslee, Philippe Massicotte

#
Hi,

You posted in HTML by mistake, so your code was mangled:
I figured out where the linebreaks go, but I can't run this:

y = rnorm(x)+xplot(x,y)

What's xplot() doing here?
Can you explain further what you're trying to do? Plot spacing is
controlled with par() for base graphics, but I really don't understand
what you're after.

--
Sarah Goslee
http://www.functionaldiversity.org
#
Hi and thank you for your answer.?

Sorry for the html post, here's the code: (you missed a break line between +x and plot(...)?

layout(matrix(c(1,2), 1, 2, byrow = TRUE), widths=c(6,2), heights=c(1,1))?

x = 1:100?
y = rnorm(x)+x?
plot(x,y)?

reg = lm(y~x)?
abline(reg, col = "red")?

plot(1, type="n", axes=F, xlab="", ylab="", xlim = c(-1,1), ylim = c(min(y), max(x)))?
segments(-0.25,min(reg$fitted.values),0.25,min(reg$fitted.values))?
segments(-0.25,max(reg$fitted.values),0.25,max(reg$fitted.values))?
segments(0,min(reg$fitted.values),0,max(reg$fitted.values))?

I hope my question is more obvious after you urn this example.?

Regards,?
Phil
#
Okay, so what you really want to do is be able to set a wide right
margin and draw some segments there? Using layout() is not the best
way to go about this: as you've discovered, you can't control the area
assigned.

You can "cheat" with layout(), as in:
layout(matrix(c(1,1,1,2), nrow=1))

but the better way is to see xpd within ?par as described here:
https://stat.ethz.ch/pipermail/r-help/2009-July/206311.html

along with par()$mai to set the margins appropriately.

Sarah

On Tue, Mar 12, 2013 at 3:50 PM, philippe massicotte
<pmassicotte at hotmail.com> wrote:

  
    
#
xpd=TRUE might works well.

I'll give it a try.

Thank you for your assistance,
Phil
----------------------------------------