Hello,
Now with data, here are base R and ggplot2 plots.
b <- read.table(text "Dtime DNO2 DVOC Dpm10
Dpm2.5 Dpm1 Mtime MNO2
MVOC Mpm10 Mpm2.5 Mpm1
18:00 28 164 81.34773 24.695435 14 18:00 19 151 3.000000
2 1
18:01 27 163 74.44034 23.751198 14 18:01 20 148 3.000000
2 1
18:02 30 160 72.21975 22.463129 13 18:02 19 150 3.000000
2 1",
header=TRUE,stringsAsFactors=FALSE)
# This base R plot needs package chron
library(chron)
# first make a real time class column
b$Dtime2 <- paste(b$Dtime, "00", sep = ":")
b$Dtime2 <- as.times(b$Dtime2)
# get the plot height and make room for
# the legend by adding 2 to y max
ylim <- range(unlist(b[c("DNO2", "MNO2")])) + c(0, 2)
# now plot one line
plot(DNO2 ~ Dtime2, b, type = "b", col = "orange", ylim =
ylim)
# add the second line
points(MNO2 ~ Dtime2, b, type = "b", col = "skyblue")
# and the horizontal legend at the top center
legend("top", legend = c("DNO2", "MNO2"), horiz =
TRUE,
lty = "solid", col = c("orange",
"skyblue"))
#-------
library(ggplot2)
library(dplyr)
library(tidyr)
b %>%
mutate(Dtime = paste(Sys.Date(), Dtime),
Dtime = as.POSIXct(Dtime)) %>%
select(Dtime, DNO2, MNO2) %>%
# reshape to long format
pivot_longer(-Dtime, names_to = "NO2") %>%
# now plot
ggplot(aes(Dtime, value, color = NO2)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("orange", "skyblue")) +
# make datetime labels
scale_x_datetime(date_breaks = "1 mins", date_labels =
"%H:%M") +
theme_bw()
Hope this helps,
Rui Barradas
?s 08:37 de 20/09/2022, Jim Lemon escreveu:> Hi David,
> I'm back home again. Try this:
>
> b<-read.table(text> "Dtime DNO2 DVOC Dpm10 Dpm2.5 Dpm1
Mtime MNO2 MVOC Mpm10 Mpm2.5 Mpm1
> 18:00 28 164 81.34773 24.695435 14 18:00 19 151 3.000000 2
1
> 18:01 27 163 74.44034 23.751198 14 18:01 20 148 3.000000 2
1
> 18:02 30 160 72.21975 22.463129 13 18:02 19 150 3.000000 2
1",
> header=TRUE,stringsAsFactors=FALSE)
>
b$POSIXtime<-strptime(paste("2022-09-20",b$Dtime),"%Y-%m-%d
%H:%M")
> png("DFPNO2.png")
> plot(b$POSIXtime,b$DNO2,type="b",main="NO2 readings
(2022-09-20)",
>
xlab="Date/time",ylab="NO2",ylim=range(c(b$DNO2,b$MNO2)),
> pch=19,col="red")
> points(b$POSIXtime,b$MNO2,type="b",pch=19,col="blue")
>
legend("center",legend=c("DNO2","MNO2"),pch=19,col=c("red","blue"))
> dev.off()
>
> If you have more than one day, it will show up on the x axis. You can
> also format the tick labels if you want the full dates for only one
> day.
>
> Jim
>
> PS thanks Avi
>
> On Tue, Sep 20, 2022 at 4:49 PM Parkhurst, David <parkhurs at
indiana.edu> wrote:
>>
>> Thank you.
>>
>> DFP (iPad)
>>
>>> On Sep 19, 2022, at 8:15 AM, Ebert,Timothy Aaron <tebert at
ufl.edu> wrote:
>>>
>>> ?My version of this email has a bunch of ? that I do not know how
to interpret. Emails to this group need to be in plain text. HTML content is
deleted or converted and impossible or at least difficult to interpret.
>>>
>>> Do not share confidential data. Please change some numbers or
variable names and share that.
>>> If this helps:
>>> 1) Make sure your time variable is a datetime object.
>>> 2) At least in ggplot it should now behave as expected.
>>> ggplot(df, aes(y=NO2, x=datetime)) + geom_point()
>>>
>>> That will be a start as a scatterplot, but the graph can be
customized or changed if scatterplot was not desired.
>>>
>>> Tim
>>>
>>> -----Original Message-----
>>> From: R-help <r-help-bounces at r-project.org> On Behalf Of
Parkhurst, David
>>> Sent: Sunday, September 18, 2022 4:27 PM
>>> To: r-help at r-project.org
>>> Subject: [R] Need help plotting
>>>
>>> [External Email]
>>>
>>> I?ve been retired since ?06 and have forgotten most of R. Now I
have a use for it, with some data from Bloomington?s Environmental Commission.
>>>
>>> I have a dataframe (obtained from read.csv) that contains numerous
columns, including time (in Excel?s 18:00 format), and DNO2, and MNO2 from two
air quality instruments.
>>>
>>> I?d like a plot of both the NO2 measurements against time. I be
happy to use either ordinary R plots or ggplot2 ones, if that would be a better
way. I?d much appreciate help.
>>>
>>> [[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.
>>
>> ______________________________________________
>> 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.