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 <parkh...@indiana.edu> wrote:

Thank you.

DFP (iPad)

On Sep 19, 2022, at 8:15 AM, Ebert,Timothy Aaron <teb...@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-boun...@r-project.org> On Behalf Of Parkhurst, David
Sent: Sunday, September 18, 2022 4:27 PM
To: r-help@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@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@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@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.

Reply via email to