library(ggplot2)
library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#load in data
df = read.csv("example.csv")

df
##              State Region measurement paired
## 1          Alabama  Urban          73      1
## 2          Alabama  Rural          86      1
## 3           Alaska  Urban          75      2
## 4           Alaska  Rural          91      2
## 5          Arizona  Urban          41      3
## 6          Arizona  Rural          90      3
## 7         Arkansas  Urban          44      4
## 8         Arkansas  Rural          93      4
## 9       California  Urban          72      5
## 10      California  Rural          91      5
## 11        Colorado  Urban          68      6
## 12        Colorado  Rural          90      6
## 13     Connecticut  Urban          81      7
## 14     Connecticut  Rural         108      7
## 15        Delaware  Urban          59      8
## 16        Delaware  Rural          96      8
## 17         Florida  Urban          71      9
## 18         Florida  Rural          95      9
## 19         Georgia  Urban          72     10
## 20         Georgia  Rural          91     10
## 21          Hawaii  Urban          57     11
## 22          Hawaii  Rural          91     11
## 23           Idaho  Urban          58     12
## 24           Idaho  Rural          97     12
## 25        Illinois  Urban          56     13
## 26        Illinois  Rural          93     13
## 27         Indiana  Urban          78     14
## 28         Indiana  Rural          94     14
## 29            Iowa  Urban          57     15
## 30            Iowa  Rural          88     15
## 31          Kansas  Urban          66     16
## 32          Kansas  Rural          87     16
## 33        Kentucky  Urban          53     17
## 34        Kentucky  Rural          99     17
## 35       Louisiana  Urban          69     18
## 36       Louisiana  Rural         105     18
## 37           Maine  Urban          72     19
## 38           Maine  Rural          95     19
## 39        Maryland  Urban          62     20
## 40        Maryland  Rural         100     20
## 41   Massachusetts  Urban          68     21
## 42   Massachusetts  Rural         100     21
## 43        Michigan  Urban          61     22
## 44        Michigan  Rural          90     22
## 45       Minnesota  Urban          69     23
## 46       Minnesota  Rural          94     23
## 47     Mississippi  Urban          69     24
## 48     Mississippi  Rural          87     24
## 49        Missouri  Urban          71     25
## 50        Missouri  Rural          88     25
## 51        Montana.  Urban          76     26
## 52        Montana.  Rural          95     26
## 53        Nebraska  Urban          62     27
## 54        Nebraska  Rural          93     27
## 55         Nevada.  Urban          64     28
## 56         Nevada.  Rural          91     28
## 57   New Hampshire  Urban          80     29
## 58   New Hampshire  Rural          88     29
## 59      New Jersey  Urban          79     30
## 60      New Jersey  Rural          98     30
## 61      New Mexico  Urban          66     31
## 62      New Mexico  Rural          86     31
## 63        New York  Urban          68     32
## 64        New York  Rural          99     32
## 65  North Carolina  Urban          66     33
## 66  North Carolina  Rural          95     33
## 67    North Dakota  Urban          56     34
## 68    North Dakota  Rural          92     34
## 69            Ohio  Urban          72     35
## 70            Ohio  Rural          89     35
## 71        Oklahoma  Urban          75     36
## 72        Oklahoma  Rural          98     36
## 73          Oregon  Urban          60     37
## 74          Oregon  Rural          96     37
## 75    Pennsylvania  Urban          65     38
## 76    Pennsylvania  Rural         100     38
## 77    Rhode Island  Urban          55     39
## 78    Rhode Island  Rural          87     39
## 79  South Carolina  Urban          55     40
## 80  South Carolina  Rural         103     40
## 81    South Dakota  Urban          58     41
## 82    South Dakota  Rural          95     41
## 83       Tennessee  Urban          73     42
## 84       Tennessee  Rural          90     42
## 85           Texas  Urban          63     43
## 86           Texas  Rural         103     43
## 87            Utah  Urban          68     45
## 88            Utah  Rural          87     45
## 89         Vermont  Urban          68     46
## 90         Vermont  Rural          93     46
## 91        Virginia  Urban          60     47
## 92        Virginia  Rural         100     47
## 93      Washington  Urban          66     48
## 94      Washington  Rural         104     48
## 95   West Virginia  Urban          67     49
## 96   West Virginia  Rural          96     49
## 97       Wisconsin  Urban          69     50
## 98       Wisconsin  Rural          98     50
## 99         Wyoming  Urban          48     51
## 100        Wyoming  Rural          90     51
#data was simulated as follows
#lowerbound = rnorm(50,65,10)
#upperbound = rnorm(50,95,5)

#ordered, no labels
df %>% ggplot(aes(x= measurement, y= reorder(State,measurement))) +
  geom_line(aes(group = paired), color="grey")+
  geom_point(aes(color=Region), size=3) +
  labs(y="State",x="Insert Title Here") + theme_bw() + theme(legend.position="top")

#compare to grouped bar charts
ggplot(df, aes(fill=Region, y=measurement, x=State)) + 
  geom_bar(position="dodge", stat="identity") + 
  scale_y_continuous(expand = c(0, 0))

#ordered, bottom labels
df %>% ggplot(aes(x= measurement, y= reorder(State,measurement))) +
  geom_line(aes(group = paired), color="grey")+
  geom_point(aes(color=Region), size=3) +
  labs(y="State",x="Insert Title Here") + theme_bw() + theme(legend.position="top") +
  geom_text(size=2.75, vjust=2.5,
            aes(x=measurement, y=State, label=measurement))

#elongate and export to PDF
ggsave("dumbbell_plot.pdf", width = 10, height = 20)