Christine Lee
2015-Dec-01 06:20 UTC
[R] filled circle with a black line on the rim in pch function
Dear All,
I have an embarssing question, I want to put a black line as a rim on the grey
symbol in the xyplot, to no avail.
. I thought it was easy, by changing the pch code from 16 to 21. I was
surpised that I ran into difficulty.
My original script is as follows:
library(lattice)
xyplot(Abun~Date1|Station, data=Raw,
groups = culr,
par.settings = list(strip.background = list(col =
"transparent"),
superpose.symbol = list(cex = rep(2, 2),
col=c("grey","black"),
pch = rep(16,2))),
type="p",
xlab=list("Month",cex=1.5),
ylab=list("Abundance",cex=1.5),
index.cond=list(c(1,2,3,4)),
auto.key = T,
layout=c(4,1))
I have changed pch number into 21, the symbols did show a black rim, but the
filled circle colours became blue and pink, instead of the designated grey and
black. This puzzles me.
My data is as follows:
Raw<-structure(list(Date = structure(c(6L, 7L, 2L, 4L, 12L, 9L, 7L,
2L, 4L, 12L, 6L, 15L, 14L, 3L, 6L, 1L, 16L, 5L, 11L, 8L, 4L,
10L, 13L, 6L, 1L, 16L, 5L, 11L, 8L, 4L, 10L, 13L, 6L, 1L, 16L,
5L, 11L, 8L, 4L, 10L, 13L, 11L, 8L, 4L, 10L, 13L), .Label = c("1/10",
"1/11", "11/11", "12/11", "13/10",
"19/9", "2/10", "2/11", "20/9",
"26/11", "29/10", "29/11", "30/11",
"31/10", "4/10", "6/10"), class =
"factor"),
Year = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Y2002", "Y2014"),
class = "factor"),
Station = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L, 4L), .Label = c("E", "F",
"H", "I"
), class = "factor"), Abun = c(3.42, 1.33, 3.67, 3.67, 3.92,
2.17, 2.5, 1.67, 6.33, 0.67, 1, 1, 1.33, 2.08, 0, 0, 0.33,
0.08, 0.08, 0, 0.5, 0.17, 0.67, 0.67, 0, 1, 0.58, 1.5, 2.67,
0.67, 1.33, 3, 0.58, 1.17, 1.25, 0.75, 1.25, 1.75, 0.92,
1.5, 0.83, 0.75, 2.33, 0.67, 1.33, 1.58), Date1 = structure(c(16697,
16710, 16740, 16751, 16768, 16698, 16710, 16740, 16751, 16768,
16697, 16712, 16739, 16750, 16697, 16709, 16714, 16721, 16737,
16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
16741, 16751, 16765, 16769, 16737, 16741, 16751, 16765, 16769
), class = "Date")), .Names = c("Date",
"Year", "Station",
"Abun", "Date1"), row.names = c(NA, -46L), class =
"data.frame")
Can any one help me please?
With best regards,
Christine
Jim Lemon
2015-Dec-01 08:01 UTC
[R] filled circle with a black line on the rim in pch function
Hi Christine, When I try to run your script, the plot fails: Error in eval(expr, envir, enclos) : object 'culr' not found> names(Raw)[1] "Date" "Year" "Station" "Abun" "Date1" so I changed the second line to: groups=Year, and it did work. The default (pink, gray) background colors for the symbols do appear when the symbol is changed to pch=21. The arguments col="black",bg=c("gray","black"), would produce the symbols you want in base graphics, but do not seem to do so in lattice. I do get sort of what you want by modifying your code pretty radically: xyplot(Abun~Date1|Station, data=Raw, groups = Year, par.settings = list(strip.background = list(col = "transparent")), type="p", pch = rep(21,2), col="black", fill=c("gray","black"), xlab=list("Month",cex=1.5), ylab=list("Abundance",cex=1.5), index.cond=list(c(1,2,3,4)), auto.key = T, layout=c(4,1)) Jim On Tue, Dec 1, 2015 at 5:20 PM, Christine Lee via R-help < r-help at r-project.org> wrote:> Dear All, > > I have an embarssing question, I want to put a black line as a rim on the > grey symbol in the xyplot, to no avail. > . I thought it was easy, by changing the pch code from 16 to 21. I was > surpised that I ran into difficulty. > > My original script is as follows: > library(lattice) > xyplot(Abun~Date1|Station, data=Raw, > groups = culr, > par.settings = list(strip.background = list(col = "transparent"), > superpose.symbol = list(cex = rep(2, 2), > col=c("grey","black"), > pch = rep(16,2))), > type="p", > xlab=list("Month",cex=1.5), > ylab=list("Abundance",cex=1.5), > index.cond=list(c(1,2,3,4)), > auto.key = T, > layout=c(4,1)) > > > I have changed pch number into 21, the symbols did show a black rim, but > the filled circle colours became blue and pink, instead of the designated > grey and black. This puzzles me. > > My data is as follows: > Raw<-structure(list(Date = structure(c(6L, 7L, 2L, 4L, 12L, 9L, 7L, > 2L, 4L, 12L, 6L, 15L, 14L, 3L, 6L, 1L, 16L, 5L, 11L, 8L, 4L, > 10L, 13L, 6L, 1L, 16L, 5L, 11L, 8L, 4L, 10L, 13L, 6L, 1L, 16L, > 5L, 11L, 8L, 4L, 10L, 13L, 11L, 8L, 4L, 10L, 13L), .Label = c("1/10", > "1/11", "11/11", "12/11", "13/10", "19/9", "2/10", "2/11", "20/9", > "26/11", "29/10", "29/11", "30/11", "31/10", "4/10", "6/10"), class > "factor"), > Year = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, > 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, > 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, > 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Y2002", "Y2014"), class > "factor"), > Station = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, > 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, > 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, > 3L, 3L, 4L, 4L, 4L, 4L, 4L), .Label = c("E", "F", "H", "I" > ), class = "factor"), Abun = c(3.42, 1.33, 3.67, 3.67, 3.92, > 2.17, 2.5, 1.67, 6.33, 0.67, 1, 1, 1.33, 2.08, 0, 0, 0.33, > 0.08, 0.08, 0, 0.5, 0.17, 0.67, 0.67, 0, 1, 0.58, 1.5, 2.67, > 0.67, 1.33, 3, 0.58, 1.17, 1.25, 0.75, 1.25, 1.75, 0.92, > 1.5, 0.83, 0.75, 2.33, 0.67, 1.33, 1.58), Date1 = structure(c(16697, > 16710, 16740, 16751, 16768, 16698, 16710, 16740, 16751, 16768, > 16697, 16712, 16739, 16750, 16697, 16709, 16714, 16721, 16737, > 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737, > 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737, > 16741, 16751, 16765, 16769, 16737, 16741, 16751, 16765, 16769 > ), class = "Date")), .Names = c("Date", "Year", "Station", > "Abun", "Date1"), row.names = c(NA, -46L), class = "data.frame") > > Can any one help me please? > > With best regards, > Christine > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Christine Lee
2015-Dec-01 08:19 UTC
[R] 回覆︰ filled circle with a black line on the rim in pch function
Sorry all,?My mistake!? The?missing parts are?as
follows:?Raw$Date1<-as.Date(Raw$Date,"%d/%m")
culr<-ifelse(Raw$Year=="Y2002","Year 2002","Year
2014")
library(lattice)?Many thanks.? ?With best regards,Christine
Jim Lemon <drjimlemon at gmail.com> ? 2015?12?1? (??) 4:01 PM ???
Hi Christine,When I try to run your script, the plot fails:
Error in eval(expr, envir, enclos) : object 'culr' not found>
names(Raw)[1] "Date" ? ?"Year" ? ?"Station"
"Abun" ? ?"Date1" ?
so I changed the second line to:
groups=Year,
and it did work. The default (pink, gray) background colors for the symbols do
appear when the symbol is changed to pch=21. The arguments?
col="black",bg=c("gray","black"),
would produce the symbols you want in base graphics, but do not seem to do so in
lattice. I do get sort of what you want by modifying your code pretty radically:
xyplot(Abun~Date1|Station, data=Raw,? ? ? ? groups = Year,? ? ? ? par.settings =
list(strip.background = list(col = "transparent")),? ? ? ?
type="p",? ? ? ? pch = rep(21,2),? ? ? ? col="black",? ? ? ?
fill=c("gray","black"),? ? ? ?
xlab=list("Month",cex=1.5),? ? ? ?
ylab=list("Abundance",cex=1.5),? ? ? ? index.cond=list(c(1,2,3,4)),? ?
? ? auto.key = T,? ? ? ? layout=c(4,1))
Jim
On Tue, Dec 1, 2015 at 5:20 PM, Christine Lee via R-help <r-help at
r-project.org> wrote:
Dear All,
I have an embarssing question, I want to put a black line as a rim on the grey
symbol in the xyplot, to no avail.
.? I thought it was easy, by changing the pch code from 16 to 21.? I was
surpised that I ran into difficulty.
My original script is as follows:
library(lattice)
xyplot(Abun~Date1|Station, data=Raw,
? ? ? ? groups = culr,
? ? ? ? par.settings = list(strip.background = list(col =
"transparent"),
? ? ? ? ? ? ? ? ? ? ? ? ? ? superpose.symbol = list(cex = rep(2, 2),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
col=c("grey","black"),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pch = rep(16,2))),
? ? ? ? type="p",
? ? ? ? xlab=list("Month",cex=1.5),
? ? ? ? ylab=list("Abundance",cex=1.5),
? ? ? ? index.cond=list(c(1,2,3,4)),
? ? ? ? auto.key = T,
? ? ? ? layout=c(4,1))
I have changed pch number into 21, the symbols did show a black rim, but the
filled circle colours became blue and pink, instead of the designated grey and
black.? This puzzles me.
My data is as follows:
Raw<-structure(list(Date = structure(c(6L, 7L, 2L, 4L, 12L, 9L, 7L,
2L, 4L, 12L, 6L, 15L, 14L, 3L, 6L, 1L, 16L, 5L, 11L, 8L, 4L,
10L, 13L, 6L, 1L, 16L, 5L, 11L, 8L, 4L, 10L, 13L, 6L, 1L, 16L,
5L, 11L, 8L, 4L, 10L, 13L, 11L, 8L, 4L, 10L, 13L), .Label = c("1/10",
"1/11", "11/11", "12/11", "13/10",
"19/9", "2/10", "2/11", "20/9",
"26/11", "29/10", "29/11", "30/11",
"31/10", "4/10", "6/10"), class =
"factor"),
? ? Year = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
? ? 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
? ? 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Y2002", "Y2014"),
class = "factor"),
? ? Station = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
? ? 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
? ? 3L, 3L, 4L, 4L, 4L, 4L, 4L), .Label = c("E", "F",
"H", "I"
? ? ), class = "factor"), Abun = c(3.42, 1.33, 3.67, 3.67, 3.92,
? ? 2.17, 2.5, 1.67, 6.33, 0.67, 1, 1, 1.33, 2.08, 0, 0, 0.33,
? ? 0.08, 0.08, 0, 0.5, 0.17, 0.67, 0.67, 0, 1, 0.58, 1.5, 2.67,
? ? 0.67, 1.33, 3, 0.58, 1.17, 1.25, 0.75, 1.25, 1.75, 0.92,
? ? 1.5, 0.83, 0.75, 2.33, 0.67, 1.33, 1.58), Date1 = structure(c(16697,
? ? 16710, 16740, 16751, 16768, 16698, 16710, 16740, 16751, 16768,
? ? 16697, 16712, 16739, 16750, 16697, 16709, 16714, 16721, 16737,
? ? 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
? ? 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
? ? 16741, 16751, 16765, 16769, 16737, 16741, 16751, 16765, 16769
? ? ), class = "Date")), .Names = c("Date",
"Year", "Station",
"Abun", "Date1"), row.names = c(NA, -46L), class =
"data.frame")
Can any one help me please?
With best regards,
Christine
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]
Duncan Mackay
2015-Dec-01 14:03 UTC
[R] filled circle with a black line on the rim in pch function
This seems to get the colours for the legend correctly
xyplot(Abun~Date1|Station, data=Raw,
groups = Year,
par.settings = list(strip.background = list(col =
"transparent"),
superpose.symbol = list(pch rep(21,2),
col=c(1,1),
fill=c("gray","black"))),
type="p",
xlab=list("Month",cex=1.5),
ylab=list("Abundance",cex=1.5),
index.cond=list(c(1,2,3,4)),
auto.key = T,
layout=c(4,1))
If you use auto.key things get a bit tricky and need values from
trellis.par.set() ie par.settings within xyplot
Regards
Duncan
Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Jim Lemon
Sent: Tuesday, 1 December 2015 18:01
To: Christine Lee
Cc: r-help mailing list
Subject: Re: [R] filled circle with a black line on the rim in pch function
Hi Christine,
When I try to run your script, the plot fails:
Error in eval(expr, envir, enclos) : object 'culr' not
found> names(Raw)
[1] "Date" "Year" "Station" "Abun"
"Date1"
so I changed the second line to:
groups=Year,
and it did work. The default (pink, gray) background colors for the symbols
do appear when the symbol is changed to pch=21. The arguments
col="black",bg=c("gray","black"),
would produce the symbols you want in base graphics, but do not seem to do
so in lattice. I do get sort of what you want by modifying your code pretty
radically:
xyplot(Abun~Date1|Station, data=Raw,
groups = Year,
par.settings = list(strip.background = list(col =
"transparent")),
type="p",
pch = rep(21,2),
col="black",
fill=c("gray","black"),
xlab=list("Month",cex=1.5),
ylab=list("Abundance",cex=1.5),
index.cond=list(c(1,2,3,4)),
auto.key = T,
layout=c(4,1))
Jim
On Tue, Dec 1, 2015 at 5:20 PM, Christine Lee via R-help <
r-help at r-project.org> wrote:
> Dear All,
>
> I have an embarssing question, I want to put a black line as a rim on the
> grey symbol in the xyplot, to no avail.
> . I thought it was easy, by changing the pch code from 16 to 21. I was
> surpised that I ran into difficulty.
>
> My original script is as follows:
> library(lattice)
> xyplot(Abun~Date1|Station, data=Raw,
> groups = culr,
> par.settings = list(strip.background = list(col =
"transparent"),
> superpose.symbol = list(cex = rep(2, 2),
>
col=c("grey","black"),
> pch = rep(16,2))),
> type="p",
> xlab=list("Month",cex=1.5),
> ylab=list("Abundance",cex=1.5),
> index.cond=list(c(1,2,3,4)),
> auto.key = T,
> layout=c(4,1))
>
>
> I have changed pch number into 21, the symbols did show a black rim, but
> the filled circle colours became blue and pink, instead of the designated
> grey and black. This puzzles me.
>
> My data is as follows:
> Raw<-structure(list(Date = structure(c(6L, 7L, 2L, 4L, 12L, 9L, 7L,
> 2L, 4L, 12L, 6L, 15L, 14L, 3L, 6L, 1L, 16L, 5L, 11L, 8L, 4L,
> 10L, 13L, 6L, 1L, 16L, 5L, 11L, 8L, 4L, 10L, 13L, 6L, 1L, 16L,
> 5L, 11L, 8L, 4L, 10L, 13L, 11L, 8L, 4L, 10L, 13L), .Label =
c("1/10",
> "1/11", "11/11", "12/11", "13/10",
"19/9", "2/10", "2/11", "20/9",
> "26/11", "29/10", "29/11", "30/11",
"31/10", "4/10", "6/10"), class >
"factor"),
> Year = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Y2002",
"Y2014"), class > "factor"),
> Station = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
> 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
> 3L, 3L, 4L, 4L, 4L, 4L, 4L), .Label = c("E", "F",
"H", "I"
> ), class = "factor"), Abun = c(3.42, 1.33, 3.67, 3.67, 3.92,
> 2.17, 2.5, 1.67, 6.33, 0.67, 1, 1, 1.33, 2.08, 0, 0, 0.33,
> 0.08, 0.08, 0, 0.5, 0.17, 0.67, 0.67, 0, 1, 0.58, 1.5, 2.67,
> 0.67, 1.33, 3, 0.58, 1.17, 1.25, 0.75, 1.25, 1.75, 0.92,
> 1.5, 0.83, 0.75, 2.33, 0.67, 1.33, 1.58), Date1 = structure(c(16697,
> 16710, 16740, 16751, 16768, 16698, 16710, 16740, 16751, 16768,
> 16697, 16712, 16739, 16750, 16697, 16709, 16714, 16721, 16737,
> 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
> 16741, 16751, 16765, 16769, 16697, 16709, 16714, 16721, 16737,
> 16741, 16751, 16765, 16769, 16737, 16741, 16751, 16765, 16769
> ), class = "Date")), .Names = c("Date",
"Year", "Station",
> "Abun", "Date1"), row.names = c(NA, -46L), class =
"data.frame")
>
> Can any one help me please?
>
> With best regards,
> Christine
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.