John Kane
2022-Dec-26  14:46 UTC
[R] Reg: Help in assigning colors to factor variable in ggplot2
I suspect you may be mixing *plot()* commands with *ggplot()* commands and they are likely incompatible. Could you supply some sample data and any error messages that you are getting? A handy way to supply some sample data is the dput() function. In the case of a large dataset something like dput(head(mydata, 100)) should supply the data we need. On Mon, 26 Dec 2022 at 09:06, Upananda Pani <upananda.pani at gmail.com> wrote:> Dear All, > > I am trying to plot a scatter plot between temperature and heart rate and > additionally marking the outcome of the patients by colors. I am using the > standard package Use the standard function plot as well as the functions of > package "ggplot2" (Wickham (2009)). Save the plots in pdf files. > > I am geeting an error to plot when assigning colsOutcome to the > scatterplot. I am doing it wrongly. Please advise me. > ```{r} > library(ggplot2) > library(RColorBrewer) > library(ggsci) > ICUData <- read.csv(file = "ICUData.csv") > ``` > ```{r} > ## Generate empty vector > colsOutcome <- character(nrow(ICUData)) > ## Fill with colors > colsOutcome[ICUData$outcome == "died"] <- "#E41A1C" > colsOutcome[ICUData$outcome == "home"] <- "#377EB8" > colsOutcome[ICUData$outcome == "other hospital"] <- "#4DAF4A8" > colsOutcome[ICUData$outcome == "secondary care/rehab"] <- "#984EA3" > ``` > > ```{r} > plot(x = ICUData$temperature, y = ICUData$heart.rate, pch = 19, > xlab = "Maximum body temperature", ylab = "Maximum heart rate", > main = "500 ICU patients", col = colsOutcome, xlim = c(33,43)) > legend(x = "topleft", legend = c("died", "home", "other hospital", > "secondary care/rehab"), pch = 19, > col = c("#E41A1C", "#377EB8", "#4DAF4A8", "#984EA3")) > ``` > ______________________________________________ > 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. >-- John Kane Kingston ON Canada [[alternative HTML version deleted]]
John Kane
2022-Dec-26  15:39 UTC
[R] Reg: Help in assigning colors to factor variable in ggplot2
Here is a rough guess at what you may want with a bit of mock data and
using ggplot2.
##=================================================#
library(ggplot2)
library(RColorBrewer)
dat1  <- data.frame(aa = sample(1:10, 20, replace = TRUE), bb sample(21:30,
20, replace = TRUE),
                    outcome = sample(c("died", "home",
"other
hospital","secondary care/rehab"), 20, replace = TRUE ))
ggplot(dat1, aes(aa, bb, colour = outcome)) + geom_point() +
    scale_colour_brewer(palette = "Dark2") +
labs(
x = "Maximum body temperature",
y =  "Maximum heart rate",
colour = "outcome",
title ="500 ICU patients"
)
 ##====================================================##
On Mon, 26 Dec 2022 at 09:46, John Kane <jrkrideau at gmail.com> wrote:
> I suspect you may be mixing *plot()* commands with *ggplot()* commands and
> they are likely incompatible.
>
> Could you supply some sample data and any error messages that you are
> getting?   A handy way to supply some sample data is the dput() function.
> In the case of a large dataset something like dput(head(mydata, 100))
> should supply the data we need.
>
> On Mon, 26 Dec 2022 at 09:06, Upananda Pani <upananda.pani at
gmail.com>
> wrote:
>
>> Dear All,
>>
>> I am trying to plot a scatter plot between  temperature and heart rate
and
>> additionally marking the outcome of the patients by colors. I am using
the
>> standard package Use the standard function plot as well as the
functions
>> of
>> package "ggplot2" (Wickham (2009)). Save the plots in pdf
files.
>>
>> I am geeting an error to plot when assigning colsOutcome to the
>> scatterplot. I am doing it wrongly. Please advise me.
>> ```{r}
>> library(ggplot2)
>> library(RColorBrewer)
>> library(ggsci)
>> ICUData <- read.csv(file = "ICUData.csv")
>> ```
>> ```{r}
>> ## Generate empty vector
>> colsOutcome <- character(nrow(ICUData))
>> ## Fill with colors
>> colsOutcome[ICUData$outcome == "died"] <-
"#E41A1C"
>> colsOutcome[ICUData$outcome == "home"] <-
"#377EB8"
>> colsOutcome[ICUData$outcome == "other hospital"] <-
"#4DAF4A8"
>> colsOutcome[ICUData$outcome == "secondary care/rehab"] <-
"#984EA3"
>> ```
>>
>> ```{r}
>> plot(x = ICUData$temperature, y = ICUData$heart.rate, pch = 19,
>>      xlab = "Maximum body temperature", ylab = "Maximum
heart rate",
>>      main = "500 ICU patients", col = colsOutcome, xlim =
c(33,43))
>> legend(x = "topleft", legend = c("died",
"home", "other hospital",
>> "secondary care/rehab"), pch = 19,
>>        col = c("#E41A1C", "#377EB8",
"#4DAF4A8", "#984EA3"))
>> ```
>> ______________________________________________
>> 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.
>>
>
>
> --
> John Kane
> Kingston ON Canada
>
-- 
John Kane
Kingston ON Canada
	[[alternative HTML version deleted]]