[R] Multiple Plots using ggplot
Frederic Ntirenganya
ntfredo at gmail.com
Tue Mar 31 15:46:43 CEST 2015
Hi All,
Thanks for the help. I want to plot some of the columns on the same graph
not all of them. Sorry, I failed to follow the instructions. Here is the
output of *dput()* but I don't know how it works.
> dput(head(data))structure(list(Date = structure(c(-6575, -6209, -5844, -5479,
-5114, -4748), class = "Date"), Number.of.Rain.Days = c(86L,
96L, 114L, 119L, 123L, 124L), Total.rain = c(1139.952, 977.646,
1382.014, 1323.086, 1266.444, 1235.964), Start.of.Rain..i. = c(92L,
98L, 92L, 100L, 92L, 92L), Start.of.Rain..ii. = c(239L, 98L,
92L, 100L, 92L, 92L), Start.of.Rain..iii. = c(112L, 112L, 120L,
125L, 119L, 112L), Start.Rain..iv. = c(112L, 112L, 120L, 174L,
119L, 112L), End.of.Rain.Season = c(228L, 229L, 240L, 228L, 228L,
228L)), .Names = c("Date", "Number.of.Rain.Days", "Total.rain",
"Start.of.Rain..i.", "Start.of.Rain..ii.", "Start.of.Rain..iii.",
"Start.Rain..iv.", "End.of.Rain.Season"), row.names = c(NA, 6L
), class = "data.frame")
I think I need subset function then melt. Here is the approach I used:
d <- subset(df1,
select=c(Date,Start.of.Rain..i.,Start.of.Rain..ii.,Start.of.Rain..iii.))
d
d2 <- melt(d , id = 'Date', variable_name = 'Start')
ggplot(d2, aes(Date,value)) + geom_line(aes(colour = start),type = "h")
but the error is:
Don't know how to automatically pick scale for object of type
function. Defaulting to continuousError in data.frame(colour =
function (x, ...) :
arguments imply differing number of rows: 0, 183
Thanks,
Frederic.
Frederic Ntirenganya
Maseno University,
African Maths Initiative,
Kenya.
Mobile:(+254)718492836
Email: fredo at aims.ac.za
https://sites.google.com/a/aims.ac.za/fredo/
On Tue, Mar 31, 2015 at 4:20 PM, stephen sefick <ssefick at gmail.com> wrote:
> Your data and post is still not provided in one of the formats provided
> here:
> http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example.
> I am unsure of what you want to do, but I have made a reproducible example
> that might help.
>
> zz <- "Date Number.of.Rain.Days Total.rain Start.of.Rain..i.
> Start.of.Rain..ii. Start.of.Rain..iii.
> 1952-01-01 86 1139.952 92
> 239 11
> 1953-01-01 96 977.646 98
> 98 11
> 1954-01-01 114 1382.014 92
> 92 12
> 1955-01-01 119 1323.086 100
> 100 12
> 1956-01-01 123 1266.444 92
> 92 11
> 1957-01-01 124 1235.964 92
> 92 11"
>
> library(reshape)
> library(ggplot2)
>
> Data <- read.table(text=zz, header = TRUE)
>
> df1 <-data.frame(Data)
>
> df2 <- melt(df1 , id = c('Date', 'Number.of.Rain.Days'))
>
> df3 <- df2[-grep("Total.rain", df2$variable),]
>
> qplot(Date,value, data=df3) +facet_wrap(~variable)
>
> On Tue, Mar 31, 2015 at 2:55 AM, Frederic Ntirenganya <ntfredo at gmail.com>
> wrote:
>
>> Hi All,
>>
>> Sorry for the shape of data which was not good enough.This is how my data look like.
>>
>> I want to plot multiple using ggplot function from a data frame of many columns. I want to plot only Start.of.Rain..i., Start.of.Rain..ii. and Start.of.Rain..iii. and I failed to make it. What I want is to compare Start.of.Rain..i., Start.of.Rain..ii. and Start.of.Rain..iii. by plotting vertical line. I also need to add points to the plot to be able to separate them. The x-axis must be date column. Thanks!
>>
>> Here is how the data look like and how I tried to make it.
>>
>>
>>
>> Date Number.of.Rain.Days Total.rain Start.of.Rain..i. Start.of.Rain..ii.
>> Start.of.Rain..iii. 1952-01-01 86 1139.952 92 239 11 1953-01-01 96 977.646
>> 98 98 11 1954-01-01 114 1382.014 92 92 12 1955-01-01 119 1323.086 100 100
>> 12 1956-01-01 123 1266.444 92 92 11 1957-01-01 124 1235.964 92 92 11
>>
>>
>> Here is how I tried to solve the problem.
>>
>> df1 <-data.frame(data)
>> df1
>> df2 <- melt(df1 , id = 'Date', variable_name = 'start of Rains')
>> df2
>>
>> ggplot(df2, aes(Date,value)) + geom_line(aes(colour ="red"),type = "h")
>>
>> Kindly any help is welcome. Thanks
>>
>> Regards,
>> Frederic.
>>
>> Frederic Ntirenganya
>> Maseno University,
>> African Maths Initiative,
>> Kenya.
>> Mobile:(+254)718492836
>> Email: fredo at aims.ac.za
>> https://sites.google.com/a/aims.ac.za/fredo/
>>
>> On Tue, Mar 31, 2015 at 9:24 AM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us
>> > wrote:
>>
>>> This is no better because (a) you are still posting using HTML format,
>>> and (b) using printed output loses the internal representation of the data.
>>> The dput function is very helpful for solving this. [1]
>>>
>>> [1]
>>> http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example
>>>
>>> ---------------------------------------------------------------------------
>>> Jeff Newmiller The ..... ..... Go
>>> Live...
>>> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live
>>> Go...
>>> Live: OO#.. Dead: OO#.. Playing
>>> Research Engineer (Solar/Batteries O.O#. #.O#. with
>>> /Software/Embedded Controllers) .OO#. .OO#.
>>> rocks...1k
>>>
>>> ---------------------------------------------------------------------------
>>> Sent from my phone. Please excuse my brevity.
>>>
>>> On March 30, 2015 10:56:48 PM PDT, Frederic Ntirenganya <
>>> ntfredo at gmail.com> wrote:
>>> >Hi Stephen,
>>> >
>>> >Sorry, the data came in bad way.
>>> >Here is the head of the data.
>>> >
>>> >> head(data) Date Number.of.Rain.Days Total.rain
>>> >Start.of.Rain..i. Start.of.Rain..ii. Start.of.Rain..iii.
>>> >Start.Rain..iv.
>>> >1 1952-01-01 86 1139.952 92
>>> > 239 112 112
>>> >2 1953-01-01 96 977.646 98
>>> > 98 112 112
>>> >3 1954-01-01 114 1382.014 92
>>> > 92 120 120
>>> >4 1955-01-01 119 1323.086 100
>>> > 100 125 174
>>> >5 1956-01-01 123 1266.444 92
>>> > 92 119 119
>>> >6 1957-01-01 124 1235.964 92
>>> > 92 112 112
>>> >
>>> >
>>> >
>>> >Frederic Ntirenganya
>>> >Maseno University,
>>> >African Maths Initiative,
>>> >Kenya.
>>> >Mobile:(+254)718492836
>>> >Email: fredo at aims.ac.za
>>> >https://sites.google.com/a/aims.ac.za/fredo/
>>> >
>>> >On Mon, Mar 30, 2015 at 5:34 PM, stephen sefick <ssefick at gmail.com>
>>> >wrote:
>>> >
>>> >> Hi Frederic,
>>> >>
>>> >> Can you provide a minimal reproducible example including either real
>>> >data
>>> >> (dput), or simulated data that mimics your situation? This will allow
>>> >more
>>> >> people to help.
>>> >>
>>> >> Stephen
>>> >>
>>> >> On Mon, Mar 30, 2015 at 8:39 AM, Frederic Ntirenganya
>>> ><ntfredo at gmail.com>
>>> >> wrote:
>>> >>
>>> >>> Dear All,
>>> >>>
>>> >>> I want to plot multiple using ggplot function from a data frame of
>>> >>> many columns. I want to plot only str1, str2 and str3 and I failed
>>> >to
>>> >>> make it. What I want is to compare str1, str2 and str3 by plotting
>>> >>> vertical line. I also need to add points to the plot to be able to
>>> >>> separate them.
>>> >>>
>>> >>>
>>> >>> Here is how the data look like and how I tried to make it.
>>> >>>
>>> >>> Date NumberofRaindays TotalRains str1 str2 str3 1/1/1952 86 1360.5
>>> >92 120
>>> >>> 112 1/1/1953 96 1100 98 100 110
>>> >>> ... ....
>>> >>> .... ... .... ....
>>> >>>
>>> >>> df1 <-data.frame(data)
>>> >>> df1
>>> >>> df2 <- melt(df1 , id = 'Date', variable_name = 'start of Rains')
>>> >>> df2
>>> >>>
>>> >>> ggplot(df2, aes(Date,value)) + geom_line(aes(colour ="red"),type =
>>> >"h")
>>> >>>
>>> >>> Kindly any help is welcome. Thanks
>>> >>>
>>> >>> Regards,
>>> >>> Frederic.
>>> >>>
>>> >>> Frederic Ntirenganya
>>> >>> Maseno University,
>>> >>> African Maths Initiative,
>>> >>> Kenya.
>>> >>> Mobile:(+254)718492836
>>> >>> Email: fredo at aims.ac.za
>>> >>> https://sites.google.com/a/aims.ac.za/fredo/
>>> >>>
>>> >>> [[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.
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Stephen Sefick
>>> >> **************************************************
>>> >> Auburn University
>>> >> Biological Sciences
>>> >> 331 Funchess Hall
>>> >> Auburn, Alabama
>>> >> 36849
>>> >> **************************************************
>>> >> sas0025 at auburn.edu
>>> >> http://www.auburn.edu/~sas0025
>>> >> **************************************************
>>> >>
>>> >> Let's not spend our time and resources thinking about things that are
>>> >so
>>> >> little or so large that all they really do for us is puff us up and
>>> >make us
>>> >> feel like gods. We are mammals, and have not exhausted the annoying
>>> >little
>>> >> problems of being mammals.
>>> >>
>>> >> -K. Mullis
>>> >>
>>> >> "A big computer, a complex algorithm and a long time does not equal
>>> >> science."
>>> >>
>>> >> -Robert Gentleman
>>> >>
>>> >>
>>> >
>>> > [[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.
>>>
>>>
>>
>
>
> --
> Stephen Sefick
> **************************************************
> Auburn University
> Biological Sciences
> 331 Funchess Hall
> Auburn, Alabama
> 36849
> **************************************************
> sas0025 at auburn.edu
> http://www.auburn.edu/~sas0025
> **************************************************
>
> Let's not spend our time and resources thinking about things that are so
> little or so large that all they really do for us is puff us up and make us
> feel like gods. We are mammals, and have not exhausted the annoying little
> problems of being mammals.
>
> -K. Mullis
>
> "A big computer, a complex algorithm and a long time does not equal
> science."
>
> -Robert Gentleman
>
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list