An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111024/dd337b4f/attachment.pl>
Different symbols for select points
2 messages · lauren mcdonagh, Sarah Goslee
On Mon, Oct 24, 2011 at 4:52 PM, lauren mcdonagh
<cleverlollipop at yahoo.ie> wrote:
Dear R users, I hope you can help me as you have done before. I was wondering if I can make some of the points on my graph a different colour and symbol? Some of my soil samples are enriched and I wanted them to be shown with a red triangle and the samples which are not enriched I wanted to show with a blue square. I can't seem to find a way of doing this if there is a way?
You can use a vector for par and col, instead of a single value:
plot (y~x,
xaxt = "n", type = "p", xlab = "Distance (m)",
ylab = "Concentrations (mg/kg)", cex.axis = .8, xlim = c(0,3000),
ylim = c(0,800), col=c(rep(2, 2), rep(4, 2), rep(2, 7)), pch =
c(rep(17, 2), rep(15, 2), rep(17, 7)), bg = 2, sub =
"Zinc",
font.sub = 2)
If there's some criterion within your data that describes enriched and
unenriched, you can use that to create the vector, instead of doing it
manually as I did.
isEnriched <- c(1,1,2,2,1,1,1,1,1,1,1)
col=c("red", "blue")[isEnriched]
and
pch=c(2, 4)[isEnriched]
Alternatively, you can subset the data and use points() to add
different sets with different parameters.
Thanks for providing a reproducible example.
Sarah
My script:
? ? ? ? ? ?x
<- c(0, 50, 100, 250, 500, 750, 1000, 1500, 2000, 2500, 3000)
? ? ? ? ? ?y
<- c(450, 109, 27,21,206,138,97,185,77,670,80)
plot ? ? (y~x,
xaxt = "n", type = "p", xlab = "Distance (m)",
ylab = "Concentrations (mg/kg)", cex.axis = .8, xlim = c(0,3000),
ylim = c(0,800), col =2, pch = 17, ? ? ? ? ? ? ? ?bg = 2, sub = "Zinc",
font.sub = 2)
? ? ? ? ? ? abline(h=c(63),
lty = 2, col = "green", lwd =1)
? ? ? ? ? ? abline(h=c(140),
lty = 3, col = "blue", lwd = 1)
? ? ? ? ? ? ?abline(h=c(720),
lty = 1, col ="red", lwd = 2)
? ? ? ? ? ? ?legend(1300,
700, c("Control", "Dutch List - Optimum", "Dutch List
- Action"), col = c(3,4,2), lty = c(2,3,1), cex = 0.8, lwd = c(1,1,2),
inset = 1)
? ? ? ? ? ? ?axis(1,
at = x, cex.axis=.7, las=2)
? ? ? ? ? ? ?text(0,450,
"mine average", pos = 4, col = "black", cex= 0.8)
? ? ? ? ? ? If possible I would like coordinates (100, 27) and (250, 21) to be shown as blue squares (col = 4, bg = 4, pch = 15).
Hope you can help!
Lauren
? ? ? ?[[alternative HTML version deleted]]
Sarah Goslee http://www.functionaldiversity.org