<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://rohitkgupta.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://rohitkgupta.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-10-03T05:28:00+00:00</updated><id>https://rohitkgupta.com/feed.xml</id><title type="html">Rohit Gupta</title><subtitle>Rohit Gupta writes code to better diagnose, classify, understand, and target cancer: DNA methylation–based tumor classification, multi-omic glioma profiling, and single-cell studies of brain tumor evolution.</subtitle><author><name>Rohit Gupta</name></author><entry><title type="html">R Shiny App for Merced Weather Data Visualization</title><link href="https://rohitkgupta.com/blog/2019/02/21/r-shiny-app-for-merced-weather-data-visualization/" rel="alternate" type="text/html" title="R Shiny App for Merced Weather Data Visualization" /><published>2019-02-21T22:00:00+00:00</published><updated>2019-02-21T22:00:00+00:00</updated><id>https://rohitkgupta.com/blog/2019/02/21/r-shiny-app-for-merced-weather-data-visualization</id><content type="html" xml:base="https://rohitkgupta.com/blog/2019/02/21/r-shiny-app-for-merced-weather-data-visualization/"><![CDATA[<p>A looong time ago, I wrote a post with <a href="https://rohitkgupta.com/blog/2017/03/29/merced_weather/">Merced weather data visualization</a> inspired by Tufte’s NYC weather analysis and here is the long awaited <code class="language-plaintext highlighter-rouge">(is.na = T)</code> follow-up of that post. R code to build the chart is located here and over at the <a href="https://github.com/rg-code/rshiny_weather">github repo I have created for the shiny app</a>. I wanted to write an interactive application using <a href="http://shiny.rstudio.com/">Shiny</a>, RStudio’s web application framework for R, and the Merced weather visualization seemed like a great candidate. In the chart below you see shiny app that I have written in action – <em>an interactive version of  my previous posts visualizations</em>. Users can select a range of years of temperature data to form the background, anywhere between years 2000 and 2017 inclusive.</p>

<iframe width="800" height="700" scrolling="no" frameborder="no" src="https://rgupta.shinyapps.io/shiny/"> </iframe>

<p>This app is hosted via my account over at <a href="https://rgupta.shinyapps.io/shiny/">shinyapps.io</a>, free tier (which is also the reason why the app is sometimes slow to load) of which allows 25hours of network time/month. Code and further documentation on how to write your own shiny app are in github repo linked above. I would also recommend taking <a href="https://www.datacamp.com/courses/building-web-applications-in-r-with-shiny">DataCamp’s excellent course</a> or <a href="http://shiny.rstudio.com/tutorial/">video and written tutorials</a> provided by shiny team itself.</p>

<h2 id="shop-talk">Shop Talk</h2>

<p>A Shiny app requires a minimum of two code modules named <code class="language-plaintext highlighter-rouge">ui.R</code> and <code class="language-plaintext highlighter-rouge">server.R</code>. I got started writing the app by copying those two modules from lesson 2 of the RStudio <a href="http://shiny.rstudio.com/tutorial/">Shiny tutorial</a> to my local folder and then making the necessary changes. I also added a <code class="language-plaintext highlighter-rouge">sliderInput</code> user-interface to allow the user to select the start_year to bracket data upto and including 2017. By default the weather visualization displays the daily <em>record</em> highs and lows and also the daily <em>average</em> highs and lows in the background. I added two <code class="language-plaintext highlighter-rouge">checkboxInputs</code> to allow the user to hide those background displays. The code for the original visualization post uses a file, <code class="language-plaintext highlighter-rouge">viz_temps.R</code>, to allow it to work within the Shiny framework. Function <code class="language-plaintext highlighter-rouge">viztemps()</code> which is defined in viz_temps.R is invoked from server.R and makes the magic happen.</p>

<h3 id="uir">ui.R</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>library(shiny)

# Define UI for application
shinyUI(fluidPage(

  # Application title
  titlePanel("Merced,CA 2014 Temperatures"),

  # Show a plot of the generated distribution
  plotOutput("MercedTemps"),

  hr(),

  # Sidebar with a slider input for the number of bins
  fluidRow(
    column(5,
      h4("Data Range (Start Year to 2017)"),
      sliderInput('start_year',
                  'Select StartYear',
                  min = 2000,
                  max = 2017,
                  value = 2008),
      offset=1
    ),
    column(5,
      checkboxInput('hide_hilows', 'Hide background daily record highs and lows bars'),
      checkboxInput('hide_avgs', 'Hide background average daily highs and lows bars'),
      offset=1
    )
  )
))
</code></pre></div></div>

<h3 id="serverr">server.R</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>library(shiny)

# Preprocessing and summarizing data
library(dplyr)

# Visualization development
library(ggplot2)

# For text graphical objects (to add text annotation)
library(grid)

source("viz_temps.R")

# Define server logic required to draw a histogram
shinyServer(function(input, output) {

  output$DublinTemps &lt;- renderPlot({
    viztemps(input$start_year,
             input$hide_hilows,
             input$hide_avgs
    )
  })
})
</code></pre></div></div>

<p>To get the app over on this post I simply embedded it using HTML <code class="language-plaintext highlighter-rouge">iframe</code> tag using following code.</p>

<p><code class="language-plaintext highlighter-rouge">&lt;iframe src="https://rgupta.shinyapps.io/shiny/" style="border: none; width: 100%; height: 700px"&gt;&lt;/iframe&gt;</code></p>

<p>And that’s it, with simple modifications to ui.R and server.R provided in tutorials and writing a viztemp function that takes raw data and creates plots using ggplot which are then communicated with ui.R and server.R an interactive version of my previous plot has been created.</p>

<p>Next on the list:</p>

<ul>
  <li>An ode to joy-plot - Creating joy plots ( aka ridgeline plot) for weather data. <em>Mainly doing this for the pun in the title.</em></li>
  <li>Weather in Cloud - Taking the weather data to AWS and creating a dockerized container. <em>Again, mostly for the title pun.</em></li>
  <li>ScraPy vs Octoparse vs BeautifulSoup</li>
  <li>Am I going to be delayed? : Using ML to determine flight delays.</li>
</ul>]]></content><author><name>RG</name></author><category term="[&quot;base&quot;]" /><category term="rshiny" /><category term="ggplot2" /><category term="dplyr" /><category term="dataviz" /><summary type="html"><![CDATA[Interactive visualization of Merced Weather Data using R Shiny app. A looong time ago, I wrote a post with Merced weather data visualization inspired by Tufte's NYC weather analysis and here is the long awaited (is.na = T) follow-up of that post. R code to build the chart can be found in this post and over at the github repo I have created for the shiny app.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://rohitkgupta.com/assets/img/og-circos.jpg" /><media:content medium="image" url="https://rohitkgupta.com/assets/img/og-circos.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Merced Weather Analysis</title><link href="https://rohitkgupta.com/blog/2017/03/29/merced_weather/" rel="alternate" type="text/html" title="Merced Weather Analysis" /><published>2017-03-29T00:00:00+00:00</published><updated>2017-03-29T00:00:00+00:00</updated><id>https://rohitkgupta.com/blog/2017/03/29/merced_weather</id><content type="html" xml:base="https://rohitkgupta.com/blog/2017/03/29/merced_weather/"><![CDATA[<p>In the data visualization community <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00014g">Edward Tufte’s chart of New York
City 2003</a> weather is well-known, Brad Boehmke published a blogpost with a similar
chart for his city, <a href="http://rpubs.com/bradleyboehmke/weather_graphic">Dayton, titled Dayton’s weather in
2014</a> which inspired me
to do a similar visualization for my city, Merced, California. The
result is the chart below. The R code to build the chart is located here
and it draws from Boehmke’s post but also includes original code.
Further below I describe the steps used to arrive at the chart.</p>

<p><img src="/images/media/final.png" alt="final.png" /></p>

<p>I started by searching the <a href="http://ncdc.noaa.gov/">NCDC (National
Climatic Data Center)</a> website for Merced weather
data. Luckily, data was available for Merced Municipal Airport. I
obtained that data from NCDC for the most recent 17-year period (January
01, 2000 through March 15, 2017) and used it as the raw data for this
project. This data is hereafter referred to as Merced weather data.</p>

<p>Unlike Tufte’s original chart (shown below) which included graphics for
Temperature and Precipitation, I decided to include only Temperature in
my chart. I will include Merced precipatation data in a future update to
this post.</p>

<p><img src="/images/media/tufte.jpg" alt="tufte.jpg" /></p>

<h2 id="code-for-data-analysis">Code for data analysis</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">library</span><span class="p">(</span><span class="n">dplyr</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">ggplot2</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Load 15 year data from Merced Weather station of NCDC into R</span><span class="w">
</span><span class="n">merced_data</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">read.csv</span><span class="p">(</span><span class="s2">"920902.csv"</span><span class="p">,</span><span class="w"> </span><span class="n">stringsAsFactors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">FALSE</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s2">","</span><span class="p">)</span><span class="w">

</span><span class="c1"># Convert all column names into lowercase (for convenience)</span><span class="w">
</span><span class="n">colnames</span><span class="p">(</span><span class="n">merced_data</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">tolower</span><span class="p">(</span><span class="nf">names</span><span class="p">(</span><span class="n">merced_data</span><span class="p">))</span><span class="w">

</span><span class="c1"># Create a dataframe containing data related only to temperature measurements; ignore other data</span><span class="w">

</span><span class="n">only_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">merced_data</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
                 </span><span class="n">select</span><span class="p">(</span><span class="n">date</span><span class="p">,</span><span class="w"> </span><span class="n">tmax</span><span class="p">,</span><span class="w"> </span><span class="n">measurement.flag.7</span><span class="p">,</span><span class="w">
                 </span><span class="n">quality.flag.7</span><span class="p">,</span><span class="w"> </span><span class="n">source.flag.7</span><span class="p">,</span><span class="n">tmin</span><span class="p">,</span><span class="w"> </span><span class="n">measurement.flag.8</span><span class="p">,</span><span class="w">
                 </span><span class="n">quality.flag.8</span><span class="p">,</span><span class="w"> </span><span class="n">source.flag.8</span><span class="p">)</span><span class="w">


</span><span class="c1"># Convert date into three columns - year, month, day</span><span class="w">
</span><span class="c1"># The date in the raw data file is a string in the format YYYYMMDD</span><span class="w">

</span><span class="c1"># First convert String object to class "Date"</span><span class="w">
</span><span class="n">all_dates</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">as.Date</span><span class="p">(</span><span class="nf">as.character</span><span class="p">(</span><span class="n">only_temps</span><span class="o">$</span><span class="n">date</span><span class="p">),</span><span class="w">
                      </span><span class="n">format</span><span class="o">=</span><span class="s2">"%Y%m%d"</span><span class="p">,</span><span class="w"> </span><span class="n">origin</span><span class="o">=</span><span class="s2">"1970-01-01"</span><span class="p">)</span><span class="w">

</span><span class="c1"># Extract parts of the date and make three columns</span><span class="w">
</span><span class="n">all_dates</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">as.POSIXlt</span><span class="p">(</span><span class="n">all_dates</span><span class="p">)</span><span class="w">
</span><span class="c1">#POSIXlt object is a list of date parts</span><span class="w">

</span><span class="n">year</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">all_dates</span><span class="o">$</span><span class="n">year</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1900</span><span class="w">  
</span><span class="c1"># years is num of years from 1900, therefore adding 1900</span><span class="w">

</span><span class="n">month</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">all_dates</span><span class="o">$</span><span class="n">mon</span><span class="w">
</span><span class="n">day</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">all_dates</span><span class="o">$</span><span class="n">mday</span><span class="w">

</span><span class="c1"># Replace the date column with 'split' date part columns (i.e., year, month, day columns)</span><span class="w">
</span><span class="n">only_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">subset</span><span class="p">(</span><span class="n">only_temps</span><span class="p">,</span><span class="w"> </span><span class="n">select</span><span class="o">=-</span><span class="n">date</span><span class="p">)</span><span class="w">
</span><span class="c1">#dropping date column}</span><span class="w">

</span><span class="n">only_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">cbind</span><span class="p">(</span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">,</span><span class="w"> </span><span class="n">only_temps</span><span class="p">)</span><span class="w">
</span><span class="c1">#adding back the split column data}</span><span class="w">


</span><span class="c1"># Save the data into a file. Data in this file will be used for visualization</span><span class="w">
</span><span class="n">write.csv</span><span class="p">(</span><span class="n">only_temps</span><span class="p">,</span><span class="w"> </span><span class="n">file</span><span class="o">=</span><span class="s2">"merced_15yr_temp.csv"</span><span class="p">,</span><span class="n">row.names</span><span class="o">=</span><span class="kc">FALSE</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<h3 id="moving-on-to-data-preperation-for-actual-analysis">Moving on to data preperation for actual analysis.</h3>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">only_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">read.csv</span><span class="p">(</span><span class="s2">"merced_15yr_temp.csv"</span><span class="p">,</span><span class="w"> </span><span class="n">stringsAsFactors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">FALSE</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">","</span><span class="p">)</span><span class="w">

</span><span class="c1">## Clean the data: drop records with invalid temp values, and missing or invalid</span><span class="w">
</span><span class="c1">## measurement, quality or source flags</span><span class="w">

</span><span class="n">temp_15</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">only_temps</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">tmax</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">-9999</span><span class="w"> </span><span class="o">&amp;</span><span class="w">
         </span><span class="c1"># drop missing max temp identified by -9999</span><span class="w">
         </span><span class="n">tmin</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">-9999</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="c1"># drop missing min temp identified by -9999</span><span class="w">
         </span><span class="n">source.flag.7</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s2">" "</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="c1"># drop tmax data with no source (blank)</span><span class="w">
         </span><span class="o">!</span><span class="nf">is.na</span><span class="p">(</span><span class="n">source.flag.7</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="c1">#  or NA</span><span class="w">
         </span><span class="n">source.flag.8</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s2">" "</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="c1"># drop tmin data with no source (blank)</span><span class="w">
         </span><span class="nf">is.na</span><span class="p">(</span><span class="n">source.flag.8</span><span class="p">))</span><span class="w"> </span><span class="c1">#  or NA</span><span class="w">

</span><span class="c1"># 6128/6282               </span><span class="w">
</span></code></pre></div></div>

<p>154 rows of data were dropper from original dataset.Next I computed the
average max and average min temperature for each year to see how Merced
fared in 2014 relative to the previous 14 years.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Compute the average per year min and max temps</span><span class="w">
    </span><span class="n">average_temp</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">summarise</span><span class="p">(</span><span class="n">avg_min</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmin</span><span class="p">),</span><span class="w">
                   </span><span class="n">avg_max</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmax</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">ungroup</span><span class="p">()</span><span class="w">

</span></code></pre></div></div>
<p>Sorting the average yearly temperatures yielded an interesting result:
2014 was the warmest of the past 15 years! In a
<a href="https://www.nasa.gov/press/2015/january/nasa-determines-2014-warmest-year-in-modern-record">recent</a> in January NASA and NOAA found that 2014 was the warmest year in modern
record, and the above results for Dublin temperatures align with that
finding.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">head</span><span class="p">(</span><span class="n">arrange</span><span class="p">(</span><span class="n">average_temp</span><span class="p">,</span><span class="w"> </span><span class="n">desc</span><span class="p">(</span><span class="n">avg_min</span><span class="p">)))</span><span class="w">

    </span><span class="c1">## # A tibble: 6 × 3</span><span class="w">
    </span><span class="c1">##    year  avg_min  avg_max</span><span class="w">
    </span><span class="c1">##   &lt;int&gt;    &lt;dbl&gt;    &lt;dbl&gt;</span><span class="w">
    </span><span class="c1">## 1  2014 51.79778 80.06094</span><span class="w">
    </span><span class="c1">## 2  2015 49.82123 77.45251</span><span class="w">
    </span><span class="c1">## 3  2012 49.71519 78.08861</span><span class="w">
    </span><span class="c1">## 4  2016 49.41484 77.23626</span><span class="w">
    </span><span class="c1">## 5  2005 49.35635 75.28453</span><span class="w">
    </span><span class="c1">## 6  2004 48.67867 75.22715</span><span class="w">
</span></code></pre></div></div>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">head</span><span class="p">(</span><span class="n">arrange</span><span class="p">(</span><span class="n">average_temp</span><span class="p">,</span><span class="w"> </span><span class="n">desc</span><span class="p">(</span><span class="n">avg_max</span><span class="p">)))</span><span class="w">

    </span><span class="c1">## # A tibble: 6 × 3</span><span class="w">
    </span><span class="c1">##    year  avg_min  avg_max</span><span class="w">
    </span><span class="c1">##   &lt;int&gt;    &lt;dbl&gt;    &lt;dbl&gt;</span><span class="w">
    </span><span class="c1">## 1  2014 51.79778 80.06094</span><span class="w">
    </span><span class="c1">## 2  2012 49.71519 78.08861</span><span class="w">
    </span><span class="c1">## 3  2013 48.55120 77.94880</span><span class="w">
    </span><span class="c1">## 4  2015 49.82123 77.45251</span><span class="w">
    </span><span class="c1">## 5  2016 49.41484 77.23626</span><span class="w">
    </span><span class="c1">## 6  2008 48.62192 76.76986</span><span class="w">
</span></code></pre></div></div>
<h2 id="create-a-dataframe-that-represents-17-years-of-historical-temp-data-from-2000-2017">Create a dataframe that represents 17 years of historical temp data from 2000-2017</h2>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">past</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">arrange</span><span class="p">(</span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">newDay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="n">day</span><span class="p">)))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">year</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"2017"</span><span class="p">,</span><span class="s2">"2016"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">upper</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">max</span><span class="p">(</span><span class="n">tmax</span><span class="p">),</span><span class="w">
                </span><span class="n">lower</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">min</span><span class="p">(</span><span class="n">tmin</span><span class="p">),</span><span class="w">
                </span><span class="n">avg_upper</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmax</span><span class="p">),</span><span class="w">
                </span><span class="n">avg_lower</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmin</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w">

</span><span class="n">past_2014</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">arrange</span><span class="p">(</span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">newDay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="n">day</span><span class="p">)))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">2014</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">tmin</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">upper</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">max</span><span class="p">(</span><span class="n">tmax</span><span class="p">),</span><span class="w">
                 </span><span class="n">lower</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">min</span><span class="p">(</span><span class="n">tmin</span><span class="p">),</span><span class="w">
                 </span><span class="n">avg_upper</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmax</span><span class="p">),</span><span class="w">
                 </span><span class="n">avg_lower</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">tmin</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w">

</span><span class="n">present</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">arrange</span><span class="p">(</span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">newDay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="n">day</span><span class="p">)))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="s2">"2016"</span><span class="p">)</span><span class="w">

          </span><span class="c1">#I have another dataframe for 2017.</span><span class="w">

</span><span class="n">temp_2017</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">arrange</span><span class="p">(</span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">newDay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="n">day</span><span class="p">)))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="s2">"2017"</span><span class="p">)</span><span class="w">

</span><span class="n">only_2014</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_15</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">arrange</span><span class="p">(</span><span class="n">month</span><span class="p">,</span><span class="w"> </span><span class="n">day</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">newDay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="n">day</span><span class="p">)))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2014</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<h1 id="create-dataframe-that-represents-the-lowest-same-day-temperature-from-years-2000-2017">Create dataframe that represents the lowest same-day temperature from years 2000-2017</h1>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">low_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past_2014</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">summarise</span><span class="p">(</span><span class="n">pastlow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">min</span><span class="p">(</span><span class="n">tmin</span><span class="p">))</span><span class="w"> </span><span class="c1"># to identify same day lowest temperatures</span><span class="w">
</span></code></pre></div></div>
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>	head(arrange(low_temps, pastlow))

    ## # A tibble: 6 × 2
    ##   newDay pastlow
    ##    &lt;int&gt;   &lt;int&gt;
    ## 1     15      19
    ## 2     13      20
    ## 3     14      20
    ## 4     16      21
    ## 5    311      22
    ## 6    335      22
</code></pre></div></div>
<p>Since 1 January 2000 , 15 January 2007 has been the coldest day in
Merced with a minimum recorded temperature of 19 F, followed by January
13, 14 and 16th of same month and year. Overall, January has been the
coldest month in Merced with a mean minimum temperature of 25.4 F
(ignoring January 2014), the average daily high was 55.24 and daily low
of 36.87 (since Jan 1, 2000).</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">high_temp</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past_2014</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
    </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
    </span><span class="c1"># to identify same day highest temperatures minus highs of 2014</span><span class="w">
    </span><span class="n">summarise</span><span class="p">(</span><span class="n">pasthigh</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">max</span><span class="p">(</span><span class="n">tmax</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    head(arrange(high_temp, desc(pasthigh)))

    ## # A tibble: 6 × 2
    ##   newDay pasthigh
    ##    &lt;int&gt;    &lt;int&gt;
    ## 1    200      112
    ## 2    201      111
    ## 3    199      110
    ## 4    202      109
    ## 5    183      108
    ## 6    191      108
</code></pre></div></div>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># To identify exactly how hot 2014 was, I compared maximum recorded temperatures against tmax in 2014.</span><span class="w">
    </span><span class="n">low_2014</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">only_2014</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">left_join</span><span class="p">(</span><span class="n">low_temps</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmin</span><span class="o">&lt;</span><span class="n">pastlow</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">)</span><span class="w">

    </span><span class="n">high_2014</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">only_2014</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
        </span><span class="n">left_join</span><span class="p">(</span><span class="n">high_temp</span><span class="p">)</span><span class="o">%&gt;%</span><span class="w">
        </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmax</span><span class="o">&gt;</span><span class="n">pasthigh</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
       </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="s2">"Y"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p>Lets look at 2016 and 2017 data now, I am going to check if 2016 and 2017 were warmer or colder when compared with 2000-2015.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lows</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> </span><span class="c1">#low temperature from all years before 2016</span><span class="w">
             </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
             </span><span class="n">summarise</span><span class="p">(</span><span class="n">Pastlow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">min</span><span class="p">(</span><span class="n">tmin</span><span class="p">))</span><span class="w">

</span><span class="n">highs</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
             </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> </span><span class="c1">#hightemperature from all years before 2016</span><span class="w">
             </span><span class="n">summarise</span><span class="p">(</span><span class="n">Pastlow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">max</span><span class="p">(</span><span class="n">tmax</span><span class="p">))</span><span class="w">

</span><span class="n">low_2016</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">present</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">left_join</span><span class="p">(</span><span class="n">lows</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmin</span><span class="o">&lt;</span><span class="n">Pastlow</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">)</span><span class="w">

</span><span class="n">high_2016</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">present</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">left_join</span><span class="p">(</span><span class="n">highs</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmax</span><span class="o">&gt;</span><span class="n">Pastlow</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">)</span><span class="w">

</span><span class="n">low_3month</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">month</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span><span class="w"> </span><span class="s2">"2"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">2017</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">newDay</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"76"</span><span class="p">,</span><span class="w"> </span><span class="s2">"77"</span><span class="p">,</span><span class="s2">"78"</span><span class="p">,</span><span class="s2">"79"</span><span class="p">,</span><span class="s2">"80"</span><span class="p">,</span><span class="s2">"81"</span><span class="p">,</span><span class="w">
          </span><span class="s2">"82"</span><span class="p">,</span><span class="s2">"83"</span><span class="p">,</span><span class="s2">"84"</span><span class="p">,</span><span class="s2">"85"</span><span class="p">,</span><span class="s2">"86"</span><span class="p">,</span><span class="s2">"87"</span><span class="p">,</span><span class="s2">"88"</span><span class="p">,</span><span class="s2">"89"</span><span class="p">,</span><span class="s2">"90"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">summarise</span><span class="p">(</span><span class="n">low</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">min</span><span class="p">(</span><span class="n">tmin</span><span class="p">))</span><span class="w">

</span><span class="n">high_3month</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">past</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">month</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span><span class="w"> </span><span class="s2">"2"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="m">2017</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">group_by</span><span class="p">(</span><span class="n">newDay</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">newDay</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"76"</span><span class="p">,</span><span class="w"> </span><span class="s2">"77"</span><span class="p">,</span><span class="s2">"78"</span><span class="p">,</span><span class="s2">"79"</span><span class="p">,</span><span class="s2">"80"</span><span class="p">,</span><span class="s2">"81"</span><span class="p">,</span><span class="w">
          </span><span class="s2">"82"</span><span class="p">,</span><span class="s2">"83"</span><span class="p">,</span><span class="s2">"84"</span><span class="p">,</span><span class="s2">"85"</span><span class="p">,</span><span class="s2">"86"</span><span class="p">,</span><span class="s2">"87"</span><span class="p">,</span><span class="s2">"88"</span><span class="p">,</span><span class="s2">"89"</span><span class="p">,</span><span class="s2">"90"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
          </span><span class="n">summarise</span><span class="p">(</span><span class="n">high</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">max</span><span class="p">(</span><span class="n">tmax</span><span class="p">))</span><span class="w">

</span><span class="n">low_2017</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_2017</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">left_join</span><span class="p">(</span><span class="n">low_3month</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmin</span><span class="o">&lt;</span><span class="n">low</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="s2">"Y"</span><span class="p">)</span><span class="w">

</span><span class="n">high_2017</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">temp_2017</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">left_join</span><span class="p">(</span><span class="n">high_3month</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">mutate</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ifelse</span><span class="p">(</span><span class="n">tmax</span><span class="o">&gt;</span><span class="n">high</span><span class="p">,</span><span class="w"> </span><span class="s2">"Y"</span><span class="p">,</span><span class="w"> </span><span class="s2">"N"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
         </span><span class="n">filter</span><span class="p">(</span><span class="n">record</span><span class="w"> </span><span class="o">==</span><span class="s2">"Y"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p>There have been 4 days in 2017 where minimum recorded temperature has
been lowest since 2000, however there have been 0 days with recorded
maximum temperture higher than any year from 2000 onwards. As for 2016,
there were 26 days where recoded maximum temperature was higher than any
previous year since 2000(including 2014), and there were 12 days where
recorded minimum temperature was lower than any year since 2000, mean
recorded maximum temperature in 2016 was 77.23626 and mean recorded low
temperature was 49.41484 but for years before 2016 (including 2014!)
mean highest temperature was 76.045 and mean lowest temperature was
48.59167.</p>

<p>Overall, 2017 has not been a very cold year so far, daily
average high temperature of first 75 days of 2017 was 60.05333 and
average low temprature was 40.44, while average low temperture for first
75 days of the year since 2000 was 60.27294 and average high was
38.95137.</p>

<p>At this point all data required to create the chart was available. We
already had the x-axis variable but the y-axis variable needed to be
created. Also, the y-axis values needed to show the degree symbol, which
I created as follows.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">degree_format</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="k">function</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">...</span><span class="p">)</span><span class="w">
       </span><span class="n">parse</span><span class="p">(</span><span class="n">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">paste</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="s2">"*degree"</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">))</span><span class="w">

    </span><span class="n">yaxis_temps</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">degree_format</span><span class="p">(</span><span class="n">seq</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">120</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="m">10</span><span class="p">))</span><span class="w">    
</span></code></pre></div></div>
<p>The stage was now set to actually create the chart using ggplot2. The
chart was created in a series of steps adding layers at each step. Since
I followed the steps in Boehmke’s post I will not go into details except
for short descriptions.</p>

<p><strong>Step 1</strong>: Create the canvas for the plot and show the 14-year record
highs and lows as the broad background</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">library</span><span class="p">(</span><span class="n">ggplot2</span><span class="p">)</span><span class="w">
    </span><span class="c1"># Step 1: create the canvas for the plot. Also plot the background lowest, highest temps</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">ggplot</span><span class="p">(</span><span class="n">past_2014</span><span class="p">,</span><span class="w"> </span><span class="n">aes</span><span class="p">(</span><span class="n">newDay</span><span class="p">,</span><span class="w"> </span><span class="n">tmax</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">theme</span><span class="p">(</span><span class="n">plot.background</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
                  </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="n">panel.border</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
                  </span><span class="n">panel.background</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_rect</span><span class="p">(</span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="s2">"seashell2"</span><span class="p">),</span><span class="w">
                  </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="c1">#axis.text = element_blank(),  </span><span class="w">
                  </span><span class="n">axis.title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">())</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_linerange</span><span class="p">(</span><span class="n">past_2014</span><span class="p">,</span><span class="n">mapping</span><span class="o">=</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">newDay</span><span class="p">,</span><span class="w"> </span><span class="n">ymin</span><span class="o">=</span><span class="n">lower</span><span class="p">,</span><span class="n">ymax</span><span class="o">=</span><span class="n">upper</span><span class="p">),</span><span class="w">
            			   </span><span class="n">size</span><span class="o">=</span><span class="m">0.9</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#CAA586"</span><span class="p">,</span><span class="w"> </span><span class="n">alpha</span><span class="o">=</span><span class="m">.6</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-13-1.png" alt="unnamed-chunk-13-1.png" /></p>

<p><strong>Step 2</strong>: Add the average daily temperatures since 2000.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_linerange</span><span class="p">(</span><span class="n">past_2014</span><span class="p">,</span><span class="n">mapping</span><span class="o">=</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">newDay</span><span class="p">,</span><span class="n">ymin</span><span class="o">=</span><span class="n">avg_lower</span><span class="p">,</span><span class="w"> </span><span class="n">ymax</span><span class="o">=</span><span class="n">avg_upper</span><span class="p">),</span><span class="w">
                           </span><span class="n">size</span><span class="o">=</span><span class="m">0.8</span><span class="p">,</span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#A57E69"</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-14-1.png" alt="unnamed-chunk-14-1.png" /></p>

<p><strong>Step 3</strong>: Finally adding 2014 tempratures.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="c1"># Step 3: Plot 2014 high and low temps</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_linerange</span><span class="p">(</span><span class="n">only_2014</span><span class="p">,</span><span class="n">mapping</span><span class="o">=</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">newDay</span><span class="p">,</span><span class="w"> </span><span class="n">ymin</span><span class="o">=</span><span class="n">tmin</span><span class="p">,</span><span class="w"> </span><span class="n">ymax</span><span class="o">=</span><span class="n">tmax</span><span class="p">),</span><span class="w">
            			   </span><span class="n">size</span><span class="o">=</span><span class="m">0.8</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#4A2123"</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-15-1.png" alt="unnamed-chunk-15-1.png" /></p>

<p><strong>Step 4</strong>: Add y-axis border and x-axis gridlines</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">20</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">30</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">40</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">50</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">60</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">70</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">80</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">90</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">100</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">110</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_hline</span><span class="p">(</span><span class="n">yintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">120</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ivory2"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.1</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-16-1.png" alt="unnamed-chunk-16-1.png" /></p>

<p><strong>Step 5 &amp; 6</strong>: Add vertical gridlines to mark each month and add labels
to the x and y axes.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="c1"># Step 5: Add vertical gridlines to mark end of each month</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">31</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">59</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">90</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">120</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">151</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">212</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">273</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">304</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">334</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_vline</span><span class="p">(</span><span class="n">xintercept</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">365</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"wheat4"</span><span class="p">,</span><span class="w"> </span><span class="n">linetype</span><span class="o">=</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.4</span><span class="p">)</span><span class="w">

    </span><span class="c1"># Step 6: Add labels to the x and y axes</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">coord_cartesian</span><span class="p">(</span><span class="n">ylim</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="m">120</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">scale_y_continuous</span><span class="p">(</span><span class="n">breaks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">seq</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="m">120</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="m">10</span><span class="p">),</span><span class="w">
            </span><span class="n">labels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">yaxis_temps</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">scale_x_continuous</span><span class="p">(</span><span class="n">expand</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">),</span><span class="n">breaks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="m">15</span><span class="p">,</span><span class="m">45</span><span class="p">,</span><span class="m">75</span><span class="p">,</span><span class="m">105</span><span class="p">,</span><span class="m">135</span><span class="p">,</span><span class="m">165</span><span class="p">,</span><span class="m">195</span><span class="p">,</span><span class="w">
                               </span><span class="m">228</span><span class="p">,</span><span class="m">258</span><span class="p">,</span><span class="m">288</span><span class="p">,</span><span class="m">320</span><span class="p">,</span><span class="m">350</span><span class="p">),</span><span class="n">labels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"January"</span><span class="p">,</span><span class="w"> </span><span class="s2">"February"</span><span class="p">,</span><span class="s2">"March"</span><span class="p">,</span><span class="w"> </span><span class="s2">"April"</span><span class="p">,</span><span class="w">
                               </span><span class="s2">"May"</span><span class="p">,</span><span class="w"> </span><span class="s2">"June"</span><span class="p">,</span><span class="w"> </span><span class="s2">"July"</span><span class="p">,</span><span class="s2">"August"</span><span class="p">,</span><span class="w"> </span><span class="s2">"September"</span><span class="p">,</span><span class="s2">"October"</span><span class="p">,</span><span class="w"> </span><span class="s2">"November"</span><span class="p">,</span><span class="w">
                               </span><span class="s2">"December"</span><span class="p">))</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-17-1.png" alt="unnamed-chunk-17-1.png" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">**</span><span class="n">Step</span><span class="w"> </span><span class="m">7</span><span class="o">**:</span><span class="w"> </span><span class="n">Mark</span><span class="w"> </span><span class="n">days</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="n">temperatures.</span><span class="w"> </span><span class="n">Note</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">there</span><span class="w"> </span><span class="n">is</span><span class="w"> </span><span class="n">just</span><span class="w">
</span><span class="n">one</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="n">low</span><span class="w"> </span><span class="n">temperature</span><span class="w"> </span><span class="n">point</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="n">below.</span><span class="w"> </span><span class="n">That</span><span class="err">'</span><span class="n">s</span><span class="w"> </span><span class="n">because</span><span class="w">
</span><span class="n">there</span><span class="w"> </span><span class="n">really</span><span class="w"> </span><span class="n">was</span><span class="w"> </span><span class="n">just</span><span class="w"> </span><span class="n">one</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="n">low</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">2014</span><span class="w"> </span><span class="n">because</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">was</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">warmest</span><span class="w">
</span><span class="n">year.</span><span class="w">

    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_point</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">low_2014</span><span class="p">,</span><span class="w"> </span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">newDay</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">tmin</span><span class="p">),</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"blue3"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">geom_point</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">high_2014</span><span class="p">,</span><span class="w"> </span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">newDay</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">tmax</span><span class="p">),</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"firebrick3"</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-18-1.png" alt="unnamed-chunk-18-1.png" /></p>

<p><strong>Step 8 &amp; 9</strong> : Add a title to the chart and provide explanation about
the data in the top left</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="c1"># Step 8: Add title to plot</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">ggtitle</span><span class="p">(</span><span class="s2">"Merced, California Weather in 2014"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">theme</span><span class="p">(</span><span class="n">plot.title</span><span class="o">=</span><span class="n">element_text</span><span class="p">(</span><span class="n">face</span><span class="o">=</span><span class="s2">"bold"</span><span class="p">,</span><span class="n">hjust</span><span class="o">=</span><span class="m">.012</span><span class="p">,</span><span class="n">vjust</span><span class="o">=</span><span class="m">.8</span><span class="p">,</span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">18</span><span class="p">))</span><span class="w">

    </span><span class="c1"># Step 9: Add explanation text under the plot title</span><span class="w">
    </span><span class="n">grob1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">grobTree</span><span class="p">(</span><span class="n">textGrob</span><span class="p">(</span><span class="s2">"Temperature\n"</span><span class="p">,</span><span class="n">x</span><span class="o">=</span><span class="m">0.02</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="o">=</span><span class="m">0.92</span><span class="p">,</span><span class="w"> </span><span class="n">hjust</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="n">gp</span><span class="o">=</span><span class="n">gpar</span><span class="p">(</span><span class="n">col</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">,</span><span class="w"> </span><span class="n">fontsize</span><span class="o">=</span><span class="m">10</span><span class="p">,</span><span class="w">
                              </span><span class="n">fontface</span><span class="o">=</span><span class="s2">"bold"</span><span class="p">)))</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">annotation_custom</span><span class="p">(</span><span class="n">grob1</span><span class="p">)</span><span class="w">

    </span><span class="n">grob2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">grobTree</span><span class="p">(</span><span class="n">textGrob</span><span class="p">(</span><span class="n">paste</span><span class="p">(</span><span class="s2">"Bars represent range between daily high and low temperatures.\n"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"Data set includes data from Jan 1, 2000 to December 31, 2014.\n"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Average high temperature for 		2014 was 80.06F making it\n"</span><span class="p">,</span><span class="s2">"the warmest year since 2000."</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">),</span><span class="w"> </span><span class="n">x</span><span class="o">=</span><span class="m">0.02</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="o">=</span><span class="m">0.83</span><span class="p">,</span><span class="w"> </span><span class="n">hjust</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="w">
                              </span><span class="n">gp</span><span class="o">=</span><span class="n">gpar</span><span class="p">(</span><span class="n">col</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">,</span><span class="w"> </span><span class="n">fontsize</span><span class="o">=</span><span class="m">8.5</span><span class="p">)))</span><span class="w">

    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">annotation_custom</span><span class="p">(</span><span class="n">grob2</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-19-1.png" alt="unnamed-chunk-19-1.png" /></p>

<p><strong>Step 10</strong> : Add annotation for the record high 2014 temperature
points.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="c1">#Step 10: Add annotation for points representing the record high 2014 temperatures</span><span class="w">

    </span><span class="n">grob3</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">grobTree</span><span class="p">(</span><span class="n">textGrob</span><span class="p">(</span><span class="n">paste</span><span class="p">(</span><span class="s2">"In 2014 there were 51 days that were \n"</span><span class="p">,</span><span class="s2">"hottest since 2000\n till 	 2017"</span><span class="p">,</span><span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">),</span><span class="n">x</span><span class="o">=</span><span class="m">0.72</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="o">=</span><span class="m">0.9</span><span class="p">,</span><span class="w"> </span><span class="n">hjust</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="n">gp</span><span class="o">=</span><span class="n">gpar</span><span class="p">(</span><span class="n">col</span><span class="o">=</span><span class="s2">"firebrick3"</span><span class="p">,</span><span class="w"> </span><span class="n">fontsize</span><span class="o">=</span><span class="m">7</span><span class="p">)))</span><span class="w">

    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">annotation_custom</span><span class="p">(</span><span class="n">grob3</span><span class="p">)</span><span class="w">

    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">257</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">263</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">99</span><span class="p">,</span><span class="w"> </span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">108</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"firebrick3"</span><span class="p">)</span><span class="w">
    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-20-1.png" alt="unnamed-chunk-20-1.png" /></p>

<p><strong>Step 11</strong> : Finally, add legend to explain the three “layers” of data:
the background record highs and lows over a 14-year period, the average
highs and lows over the same period, and the 2014 daily highs and lows.</p>
<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w">    </span><span class="c1"># Step 11: Add legend to explain difference between the different data point layers</span><span class="w">
    </span><span class="n">p</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">5</span><span class="p">,</span><span class="w"> </span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">25</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#CAA586"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">3</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">11</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">19</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#A57E69"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">3</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">181</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">13</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">22</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#4A2123"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">177</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">179</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">18.7</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">18.7</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#A57E69"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.5</span><span class="p">)</span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">177</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">179</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">11.2</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">11.2</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#A57E69"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.5</span><span class="p">)</span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">177</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">177</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">11.2</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">18.7</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#A57E69"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="o">=</span><span class="m">.5</span><span class="p">)</span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">183</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">185</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">13.25</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">13.25</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="s2">"#4A2123"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">.3</span><span class="p">)</span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"segment"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">183</span><span class="p">,</span><span class="w"> </span><span class="n">xend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">185</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">21.75</span><span class="p">,</span><span class="n">yend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">21.75</span><span class="p">,</span><span class="n">colour</span><span class="w"> </span><span class="o">=</span><span class="s2">"#4A2123"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">.3</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">165</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">14.75</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"NORMAL RANGE"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">2.1</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">170</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">25</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"RECORD HIGH"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">2.1</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">170</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">5</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"RECORD LOW"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">2.1</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">195</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">21.75</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ACTUAL HIGH"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">2.1</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
            </span><span class="n">annotate</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">195</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">13.25</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"ACTUAL LOW"</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="m">2.1</span><span class="p">,</span><span class="w"> </span><span class="n">colour</span><span class="o">=</span><span class="s2">"gray30"</span><span class="p">)</span><span class="w">

    </span><span class="n">print</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>
<p><img src="/images/media/unnamed-chunk-21-1.png" alt="unnamed-chunk-21-1.png" /></p>]]></content><author><name>RG</name></author><category term="base" /><category term="ggplot2" /><category term="dplyr" /><category term="R" /><category term="data visualization" /><summary type="html"><![CDATA[In the data visualization community Edward Tufte’s chart of New York City 2003 weather is well-known, Brad Boehmke published a blogpost with a similar chart for his city, Dayton, titled Dayton’s weather in 2014 which inspired me to do a similar visualization for my city, Merced, California. The result is the chart below. The R code to build the chart is located here and it draws from Boehmke’s post but also includes original code. Further below I describe the steps used to arrive at the chart.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://rohitkgupta.com/assets/img/og-circos.jpg" /><media:content medium="image" url="https://rohitkgupta.com/assets/img/og-circos.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>