Related
I'd like to make a graph that captures the impact of the intervention. As you can see in the plot below, the y-axis of my figure has different scales (e.g. values), making comparison difficult. Is it possible to normalise the y axis (0 and 1) on both figures? Is it also possible to create a plot that shows the intervention rate per day? For Monday, for example, display a black line without SEDM and a red line with
Sample code:
df %>%
group_by(Day, Time = ceiling_date(as.POSIXct(Time), '10 minutes')) %>%
summarise(kW= mean(kW)) %>%
ungroup
df$Day<- factor(df$Day,levels = c( "Monday", "Tuesday","Wednesday","Thursday","Friday","Saturday", "Sunday"))
#as.POSIXct(df$Time,format="%H:%M")
ggplot(transform(df, Time = as.POSIXct(Time)),
aes(x = Time,y =kW, group=Day)) +
geom_smooth(aes(color=Day)) +
#geom_boxplot()+
labs(x="", y="kW", title="Monthly electricity consumption without SEDM (House 3)") +
scale_x_datetime(date_labels = '%H:%M', date_breaks = '2 hours',expand = expansion(mult = c(0, 0)))+
#facet_wrap(~Day, ncol=1 )+
theme_bw()+
theme(axis.text.x = element_text(angle = 90, hjust = 1,family="Times", face="bold", size=12, color="black"),
axis.title.x = element_text(family="Times", face="bold", size=16, color="black"),
axis.text.y = element_text(family="Times", face="bold", size=12, color="black"),
axis.title.y = element_text(family="Times", face="bold", size=16, color="black"),
strip.text = element_text(size=15, face="bold"),
plot.title = element_text(size=20, face="bold"))+
theme(legend.title = element_blank(),
legend.text = element_text(family="Times", color = "black", size = 16,face="bold"),
legend.position="top",
legend.box = "horizontal",
plot.title = element_text(hjust = 0.5))+
guides(fill = guide_legend(nrow = 1))
Plot:
Data:
#for the first plot (without SEDM) first 300
structure(list(structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L), .Label = c("Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"), class = "factor"), structure(c(41220,
41280, 41340, 41400, 41460, 41520, 41580, 41640, 41700, 41760,
41820, 41880, 41940, 42000, 42060, 42120, 42180, 42240, 42300,
42360, 42420, 42480, 42540, 42600, 42660, 42720, 42780, 42840,
42900, 42960, 43020, 43080, 43140, 43200, 43260, 43320, 43380,
43440, 43500, 43560, 43620, 43680, 43740, 43800, 43860, 43920,
43980, 44040, 44100, 44160, 44220, 44280, 44340, 44400, 44460,
44520, 44580, 44640, 44700, 44760, 44820, 44880, 44940, 45000,
45060, 45120, 45180, 45240, 45300, 45360, 45420, 45480, 45540,
45600, 45660, 45720, 45780, 45840, 45900, 45960, 46020, 46080,
46140, 46200, 46260, 46320, 46380, 46440, 46500, 46560, 46620,
46680, 46740, 46800, 46860, 46920, 46980, 47040, 47100, 47160,
47220, 47280, 47340, 47400, 47460, 47520, 47580, 47640, 47700,
47760, 47820, 47880, 47940, 48000, 48060, 48120, 48180, 48240,
48300, 48360, 48420, 48480, 48540, 48600, 48660, 48720, 48780,
48840, 48900, 48960, 49020, 49080, 49140, 49200, 49260, 49320,
49380, 49440, 49500, 49560, 49620, 49680, 49740, 49800, 49860,
49920, 49980, 50040, 50100, 50160, 50220, 50280, 50340, 50400,
50460, 50520, 50580, 50640, 50700, 50760, 50820, 50880, 50940,
51000, 51060, 51120, 51180, 51240, 51300, 51360, 51420, 51480,
51540, 51600, 51660, 51720, 51780, 51840, 51900, 51960, 52020,
52080, 52140, 52200, 52260, 52320, 52380, 52440, 52500, 52560,
52620, 52680, 52740, 52800, 52860, 52920, 52980, 53040, 53100,
53160, 53220, 53280, 53340, 53400, 53460, 53520, 53580, 53640,
53700, 53760, 53820, 53880, 53940, 54000, 54060, 54120, 54180,
54240, 54300, 54360, 54420, 54480, 54540, 54600, 54660, 54720,
54780, 54840, 54900, 54960, 55020, 55080, 55140, 55200, 55260,
55320, 55380, 55440, 55500, 55560, 55620, 55680, 55740, 55800,
55860, 55920, 55980, 56040, 56100, 56160, 56220, 56280, 56340,
56400, 56460, 56520, 56580, 56640, 56700, 56760, 56820, 56880,
56940, 57000, 57060, 57120, 57180, 57240, 57300, 57360, 57420,
57480, 57540, 57600, 57660, 57720, 57780, 57840, 57900, 57960,
58020, 58080, 58140, 58200, 58260, 58320, 58380, 58440, 58500,
58560, 58620, 58680, 58740, 58800, 58860, 58920, 58980, 59040,
59100, 59160), class = c("hms", "difftime"), units = "secs"),
c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2.951667, 41.055, 10.733333, 2.951667, 3.22, 4.83,
3.22, 3.22, 3.22, 2.951667, 3.488333, 13.416667, 3.22, 3.22,
13.416667, 43.738333, 3.22, 3.22, 3.22, 3.488333, 3.22, 3.22,
3.488333, 2.951667, 11.806667, 3.756667, 45.348333, 4.025,
4.025, 4.293333, 4.83, 4.83, 15.026667, 4.561667, 46.153333,
4.025, 4.025, 3.756667, 4.025, 4.293333, 44.275, 44.811667,
3.756667, 3.756667, 3.756667, 3.756667, 3.756667, 3.756667,
3.756667, 3.756667, 3.756667, 44.006667, 3.756667, 3.756667,
3.756667, 3.488333, 3.756667, 3.756667, 44.006667, 44.006667,
3.756667, 3.756667, 4.293333, 3.756667, 4.293333, 4.561667,
4.83, 4.025, 4.025, 24.418333, 4.561667, 4.025, 4.293333,
32.736667, 9.928333, 1.073333, 1.341667, 1.073333, 0.805,
20.93, 41.591667, 0.805, 0.805, 1.073333, 1.341667, 1.61,
2.415, 43.201667), c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA), c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("Day",
"Time", "kW", NA, NA, NA, NA, NA, NA), row.names = c(NA, 300L
), class = "data.frame")
#for the second plot (with SEDM) first 500
structure(list(Day = structure(c(5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L), .Label = c("Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"), class = "factor"),
Time = structure(c(43380, 43440, 43500, 43560, 43620, 43680,
43740, 43800, 43860, 43920, 65700, 65760, 65820, 65880, 65940,
66000, 66060, 66120, 66180, 66240, 66300, 66360, 66420, 66480,
66540, 66600, 66660, 66720, 66780, 66840, 66900, 66960, 67020,
67080, 67140, 67200, 67260, 67320, 67380, 67440, 67500, 67560,
67620, 67680, 67740, 67800, 67860, 67920, 67980, 68040, 68100,
68160, 68220, 68280, 68340, 68400, 68460, 68520, 68580, 68640,
68700, 68760, 68820, 68880, 68940, 69000, 69060, 69120, 69180,
69240, 69300, 69360, 69420, 69480, 69540, 69600, 69660, 69720,
69780, 69840, 69900, 69960, 70020, 70080, 70140, 70200, 70260,
70320, 70380, 70440, 70500, 70560, 70620, 70680, 70740, 70800,
70860, 70920, 70980, 71040, 71100, 71160, 71220, 71280, 71340,
71400, 71460, 71520, 71580, 71640, 71700, 71760, 71820, 71880,
71940, 72000, 72060, 72120, 72180, 72240, 72300, 72360, 72420,
72480, 72540, 72600, 72660, 72720, 72780, 72840, 72900, 72960,
73020, 73080, 73140, 73200, 73260, 73320, 73380, 73440, 73500,
73560, 73620, 73680, 73740, 73800, 73860, 73920, 73980, 74040,
74100, 74160, 74220, 74280, 74340, 74400, 74460, 74520, 74580,
74640, 74700, 74760, 74820, 74880, 74940, 75000, 75060, 75120,
75180, 75240, 75300, 75360, 75420, 75480, 75540, 75600, 75660,
75720, 75780, 75840, 75900, 75960, 76020, 76080, 76140, 76200,
76260, 76320, 76380, 76440, 76500, 76560, 76620, 76680, 76740,
76800, 76860, 76920, 76980, 77040, 77100, 77160, 77220, 77280,
77340, 77400, 77460, 77520, 77580, 77640, 77700, 77760, 77820,
77880, 77940, 78000, 78060, 78120, 78180, 78240, 78300, 78360,
78420, 78480, 78540, 78600, 78660, 78720, 78780, 78840, 78900,
78960, 79020, 79080, 79140, 79200, 79260, 79320, 79380, 79440,
79500, 79560, 79620, 79680, 79740, 79800, 79860, 79920, 79980,
80040, 80100, 80160, 80220, 80280, 80340, 80400, 80460, 80520,
80580, 80640, 80700, 80760, 80820, 80880, 80940, 81000, 81060,
81120, 81180, 81240, 81300, 81360, 81420, 81480, 81540, 81600,
81660, 81720, 81780, 81840, 81900, 81960, 82020, 82080, 82140,
82200, 82260, 82320, 82380, 82440, 82500, 82560, 82620, 82680,
82740, 82800, 82860, 82920, 82980, 83040), class = c("hms",
"difftime"), units = "secs"), kW = c(0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 6.976667, 6.976667, 7.245, 7.245, 7.245, 7.245,
7.245, 7.245, 7.245, 7.245, 7.245, 7.245, 7.245, 7.245, 7.245,
7.245, 7.245, 7.245, 7.245, 7.245, 13.416667, 30.053333,
4.025, 4.025, 4.025, 4.025, 42.396667, 41.591667, 4.025,
4.025, 4.025, 4.025, 4.025, 4.025, 4.293333, 4.025, 4.025,
4.293333, 4.025, 4.025, 23.881667, 23.881667, 4.293333, 4.025,
4.293333, 42.665, 43.201667, 29.785, 4.293333, 16.636667,
4.025, 4.025, 4.025, 4.025, 4.025, 4.025, 4.293333, 5.903333,
5.635, 5.903333, 31.126667, 5.635, 5.635, 5.635, 5.635, 5.635,
5.903333, 5.635, 5.635, 5.635, 39.176667, 60.106667, 75.67,
75.67, 76.475, 30.321667, 6.976667, 7.781667, 7.781667, 39.713333,
39.713333, 39.713333, 31.663333, 31.663333, 31.663333, 18.515,
31.663333, 37.298333, 49.91, 59.301667, 24.15, 28.711667,
30.59, 35.956667, 38.64, 41.055, 24.955, 42.665, 52.325,
43.47, 31.395, 50.983333, 52.325, 40.518333, 44.543333, 50.178333,
41.591667, 50.715, 54.74, 50.983333, 65.741667, 48.031667,
41.591667, 50.715, 28.98, 5.366667, 7.781667, 28.98, 16.368333,
4.561667, 4.561667, 2.683333, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.683333, 2.683333, 2.415, 2.415, 3.756667, 3.756667, 3.756667,
4.293333, 5.366667, 5.635, 5.366667, 5.366667, 4.83, 4.83,
4.561667, 3.22, 2.951667, 2.951667, 3.22, 3.22, 3.22, 3.22,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.415, 2.415, 2.415, 2.415, 2.146667,
2.415, 2.146667, 2.415, 2.415, 2.415, 2.146667, 2.415, 2.415,
2.415, 2.415, 2.951667, 2.415, 2.415, 2.415, 2.415, 2.415,
2.415, 2.415, 2.415, 2.415, 2.415, 2.415, 2.415, 2.415, 2.415,
2.415, 2.415, 2.415, 2.415, 2.415, 2.683333, 2.683333, 2.683333,
2.683333, 2.683333, 2.415, 2.683333, 3.488333, 2.951667,
3.756667, 3.756667, 3.488333, 3.488333, 4.025, 4.025, 2.415,
2.415, 1.878333, 1.878333, 2.146667, 2.415, 1.878333, 2.146667,
2.146667, 2.146667, 1.878333, 1.878333, 1.878333, 1.878333,
1.878333, 1.878333, 1.878333, 1.878333, 1.878333, 1.878333,
1.878333, 1.878333, 1.878333, 3.488333, 3.22, 2.951667, 2.683333,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.951667,
2.951667, 2.951667, 2.951667, 2.951667, 2.951667, 2.683333,
2.951667, 2.951667, 2.951667, 2.683333)), row.names = c(NA,
300L), class = "data.frame")
You could scale your "kW" variable with min and max like this:
library(ggplot2)
df$Day<- factor(df$Day,levels = c( "Monday", "Tuesday","Wednesday","Thursday","Friday","Saturday", "Sunday"))
#as.POSIXct(df$Time,format="%H:%M")
maxs <- max(df$kW)
mins <- min(df$kW)
df$kW <- scale(df$kW, center = mins, scale = maxs-mins)
ggplot(transform(df, Time = as.POSIXct(Time)),
aes(x = Time,y =kW, group=Day)) +
geom_smooth(aes(color=Day)) +
#geom_boxplot()+
labs(x="", y="kW", title="Monthly electricity consumption without SEDM (House 3)") +
scale_x_datetime(date_labels = '%H:%M', date_breaks = '2 hours',expand = expansion(mult = c(0, 0)))+
#facet_wrap(~Day, ncol=1 )+
theme_bw()+
theme(axis.text.x = element_text(angle = 90, hjust = 1,family="Times", face="bold", size=12, color="black"),
axis.title.x = element_text(family="Times", face="bold", size=16, color="black"),
axis.text.y = element_text(family="Times", face="bold", size=12, color="black"),
axis.title.y = element_text(family="Times", face="bold", size=16, color="black"),
strip.text = element_text(size=15, face="bold"),
plot.title = element_text(size=20, face="bold"))+
theme(legend.title = element_blank(),
legend.text = element_text(family="Times", color = "black", size = 16,face="bold"),
legend.position="top",
legend.box = "horizontal",
plot.title = element_text(hjust = 0.5))+
guides(fill = guide_legend(nrow = 1))
Output:
This question already has answers here:
Reshaping data.frame from wide to long format
(8 answers)
Closed 12 months ago.
My data look like this:
dput(srkw.dat)
structure(list(year = c(1962L, 1976L, 1981L, 1981L, 1982L,
1987L, 1989L, 1990L, 1992L, 1992L, 1992L, 1994L, 1998L, 2003L,
2003L, 2003L, 2003L, 2004L, 2004L, 2004L, 2005L, 2005L, 2005L,
2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2006L, 2006L,
2006L, 2006L, 2006L, 2006L, 2007L, 2007L, 2007L, 2008L, 2008L,
2008L, 2009L, 2009L, 2009L, 2010L, 2010L, 2010L, 2011L, 2011L,
2013L, 2013L, 2013L, 2014L, 2014L, 2014L, 2014L, 2014L, 2015L,
2015L, 2015L, 2015L, 2015L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2017L, 2018L, 2018L, 2018L, 2019L, 2020L, 2020L, 2020L,
2020L), whaleid1 = c("Lx", "Lx", "Lx", "Lx", "Lx", "L5",
"Lx", "Kx", "L5", "Lx", "L21", "L5", "Lx", "Jx", "L5", "L7",
"Jx", "L21", "L54", "Lx", "Jx", "J27", "J16", "J11", "Jx",
"L5", "L5", "J30", "L95", "Lx", "Jx", "J35", "K40", "Lx",
"L12", "Jx", "L106", "L21", "Kx", "L83", "L83", "L57", "J31",
"J27", "J30", "L55", "L22", "K36", "Jx", "L72", "K21", NA,
"K16", "J16", "J35", "L72", "J36", "L22", "K22", "K22", "L77",
"J47", "Jx", "J40", "L119", "J2", "J35", "L103", "L77", "L87",
"J39", "J22", "J38", "L115", "J31", NA, "J37", "Lx"), whalesex1 = c(NA,
0L, NA, NA, 0L, 0L, NA, NA, 0L, 0L, 0L, 0L, 1L, NA, 0L, 0L,
NA, 0L, 0L, NA, NA, 1L, 0L, 0L, NA, 0L, 0L, 1L, 1L, NA, NA,
0L, 0L, NA, 0L, NA, 1L, 0L, NA, 0L, 0L, 1L, 0L, 1L, 1L, 0L,
0L, 0L, NA, 0L, 1L, NA, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, NA, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, NA,
0L, NA), whaleage1 = c(NA, NA, NA, NA, NA, 23L, NA, NA, 28L,
NA, 42L, 30L, NA, NA, 39L, 42L, NA, 54L, 27L, NA, NA, 14L,
33L, 33L, NA, 41L, 41L, 10L, 9L, NA, NA, 8L, 43L, NA, 73L,
NA, 2L, 57L, NA, 18L, 18L, 31L, 14L, 18L, 14L, 33L, 39L,
7L, NA, 25L, 27L, NA, 28L, 42L, 16L, 28L, 15L, 43L, 28L,
28L, 28L, 5L, NA, 12L, 4L, 60L, 18L, 13L, 29L, 24L, 15L,
23L, 15L, 9L, 25L, NA, 19L, NA), whaleid2 = c("Lx", "Lx",
"Lx", "Lx", "Lx", "L58", "Lx", "Kx", "L58", "Lx", "Lx", "L58",
NA, "Jx", "L73", "L57", "Jx", "L47", "L100", "Lx", NA, "J31",
"J26", "J27", "Jx", "L73", "L73", "J31", "L72", "Lx", "Jx",
"J37", "K16", "Lx", "L41", NA, "L41", "L26", NA, "L110",
"L110", NA, "J36", "J31", "Kx", NA, "L94", "K42", NA, "Kx",
"K25", NA, NA, "J26", "J47", "L105", "J41", "L94", NA, "K33",
"L119", NA, NA, NA, NA, NA, "J47", "L109", "L119", "Jx",
NA, "J40", NA, NA, "J56", NA, "Jx", "Lx"), whalesex2 = c(NA,
NA, NA, NA, NA, 1L, NA, NA, 1L, 0L, NA, 1L, NA, NA, 1L, 1L,
NA, 0L, 1L, NA, NA, 0L, 1L, 1L, NA, 1L, 1L, 0L, 0L, NA, NA,
0L, 0L, NA, 1L, NA, 1L, 0L, NA, 1L, 1L, NA, 0L, 0L, NA, NA,
0L, 1L, NA, NA, 1L, NA, NA, 1L, 1L, 1L, 0L, 0L, NA, 1L, 0L,
NA, NA, NA, NA, NA, 1L, 1L, 0L, NA, NA, 0L, NA, NA, 0L, NA,
NA, NA), whaleage2 = c(NA, NA, NA, NA, NA, 7L, NA, NA, 12L,
NA, NA, 14L, NA, NA, 17L, 26L, NA, 30L, 3L, NA, NA, 10L,
14L, 14L, NA, 19L, 19L, 10L, 19L, NA, NA, 5L, 21L, NA, 29L,
NA, 30L, 51L, NA, 1L, 1L, NA, 10L, 14L, NA, NA, 15L, 2L,
NA, NA, 22L, NA, NA, 23L, 4L, 10L, 9L, 19L, NA, 14L, 3L,
NA, NA, NA, NA, NA, 6L, 9L, 4L, NA, NA, 14L, NA, NA, 1L,
NA, NA, NA), whaleid3 = c(NA, NA, NA, NA, "Lx", "L73", "Lx",
"Kx", "L73", "Lx", NA, "L73", NA, "Jx", NA, NA, NA, "Lx",
NA, NA, NA, "Jx", "J36", "J39", NA, "L67", "L67", NA, NA,
NA, NA, "J40", "K35", "Lx", "L77", NA, "L57", "L47", NA,
"L47", "L91", NA, "J39", "J39", NA, NA, "L113", NA, NA, NA,
"K26", NA, NA, "J36", NA, NA, "J42", "L113", NA, NA, NA,
NA, NA, NA, NA, NA, "L87", "L123", "L113", "Jx", NA, "J49",
NA, NA, "J36", NA, NA, "Lx"), whalesex3 = c(NA, NA, NA, NA,
0L, 1L, NA, NA, 1L, NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 0L, 1L, NA, 0L, 0L, NA, NA, NA, NA, 0L, 1L, NA,
0L, NA, 1L, 0L, NA, 0L, 0L, NA, 1L, 1L, NA, NA, 0L, NA, NA,
NA, 1L, NA, NA, 0L, NA, NA, 0L, 0L, NA, NA, NA, NA, NA, NA,
NA, NA, 1L, 1L, 0L, 0L, NA, 1L, NA, NA, 0L, NA, NA, NA),
whaleage3 = c(NA, NA, NA, NA, NA, 1L, NA, NA, 6L, NA, NA,
8L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 6L, 2L, NA, 20L,
20L, NA, NA, NA, NA, 2L, 4L, NA, 19L, NA, 30L, 33L, NA, 34L,
13L, NA, 6L, 6L, NA, NA, 1L, NA, NA, NA, 20L, NA, NA, 15L,
NA, NA, 7L, 5L, NA, NA, NA, NA, NA, NA, NA, NA, 24L, 1L,
7L, NA, NA, 6L, NA, NA, 21L, NA, NA, NA), whaleid4 = c(NA,
NA, NA, NA, "Lx", NA, "Lx", "Kx", NA, "Lx", NA, NA, NA, "Jx",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "L101", "L101",
NA, NA, NA, NA, NA, NA, "Lx", "L94", NA, "L82", "Lx", NA,
"L111", NA, NA, "Kx", NA, NA, NA, NA, NA, NA, NA, "K35",
NA, NA, "J42", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "Jx", NA, NA, NA, NA, "J47", NA, NA, "Lx"
), whalesex4 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
1L, 1L, NA, NA, NA, NA, NA, NA, NA, 0L, NA, 0L, NA, NA, 0L,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, 0L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 1L, NA, NA, NA), whaleage4 = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 3L, 3L, NA, NA, NA, NA, NA, NA,
NA, 11L, NA, 17L, NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 11L, NA, NA, 7L, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 10L,
NA, NA, NA), whaleid5 = c(NA, NA, NA, NA, NA, NA, "Lx", "Kx",
NA, NA, NA, NA, NA, "Jx", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "L86",
NA, NA, "L91", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, "Jx", NA, NA, NA, NA, "J49", NA, NA, NA), whalesex5 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 0L, NA, NA, 0L, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA,
NA, NA), whaleage5 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 16L, NA,
NA, 13L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 8L, NA, NA, NA), whaleid6 = c(NA,
NA, NA, NA, NA, NA, "Lx", "Kx", NA, NA, NA, NA, NA, "Jx",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "L95", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Jx", NA, NA,
NA, NA, NA, NA, NA, NA), whalesex6 = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), whaleage6 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 11L, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), whaleid7 = c(NA, NA, NA, NA, NA, NA, "Lx", "Kx",
NA, NA, NA, NA, NA, "Jx", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "L77",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "Jx", NA, NA, NA, NA, NA, NA, NA, NA), whalesex7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), whaleage7 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 20L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), whaleid8 = c(NA,
NA, NA, NA, NA, NA, "Lx", "Kx", NA, NA, NA, NA, NA, "Jx",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "L94", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Jx", NA, NA,
NA, NA, NA, NA, NA, NA), whalesex8 = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), whaleage8 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 12L, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), event.id = 1:78), row.names = c(NA, -78L), class = "data.frame")
I want to use r_bind to group by whale IDs, while ascribing each whale's respective age and sex to its ID. I got this far:
events.by.id =
rbind(
srkw.dat %>%
select(event.id, year, id = whaleid1),
srkw.dat %>%
select(event.id, year, id = whaleid2),
srkw.dat %>%
select(event.id, year, id = whaleid3),
srkw.dat %>%
select(event.id, year, id = whaleid4),
srkw.dat %>%
select(event.id, year, id = whaleid5),
srkw.dat %>%
select(event.id, year, id = whaleid6),
srkw.dat %>%
select(event.id, year, id = whaleid7)
) %>%
filter(!is.na(id))
But I wasn't sure what extra syntax is needed to link each whale's age and sex to its ID?
Additionally, after that is done, is there an elegant way to selectively remove the whale IDs (and their ascribed sexes/ages) that are Jx, Lx, Kx, etc?
Thanks so much!
I think it would help if you get data in long format using pivot_longer with id, sex and age as separate columns. This might be simpler than your attempt.
res <- tidyr::pivot_longer(srkw.dat,
cols = -year,
names_to = c('.value', 'num'),
names_pattern = 'whale(.*?)(\\d+)',
values_drop_na = TRUE)
res
# A tibble: 211 x 5
# year num id sex age
# <int> <chr> <chr> <int> <int>
# 1 1962 1 Lx NA NA
# 2 1962 2 Lx NA NA
# 3 1976 1 Lx 0 NA
# 4 1976 2 Lx NA NA
# 5 1981 1 Lx NA NA
# 6 1981 2 Lx NA NA
# 7 1981 1 Lx NA NA
# 8 1981 2 Lx NA NA
# 9 1982 1 Lx 0 NA
#10 1982 2 Lx NA NA
# … with 201 more rows
It would be easy now to filter data with res. For example, to drop id's c('Jx', 'Lx', 'Kx') you may do -
res %>% filter(!id %in% c('Jx', 'Lx', 'Kx'))
What you want to do is pivot your data. You've actually kind of developed your own version of tidyr::pivot_longer() -- but it's easier with Hadley's version.
To your second question, you can use stringr::str_ends() to filter by ids ending in "x".
library(tidyverse)
srkw.dat_long <- srkw.dat %>%
pivot_longer(
cols = starts_with("whale"),
names_to = c(".value", NA),
names_pattern = "whale(\\D+)(\\d+)"
) %>%
filter(!(is.na(id) | str_ends(id, "x")))
# # A tibble: 132 x 5
# year event.id id sex age
# <int> <int> <chr> <int> <int>
# 1 1987 6 L5 0 23
# 2 1987 6 L58 1 7
# 3 1987 6 L73 1 1
# 4 1992 9 L5 0 28
# 5 1992 9 L58 1 12
# 6 1992 9 L73 1 6
# 7 1992 11 L21 0 42
# 8 1994 12 L5 0 30
# 9 1994 12 L58 1 14
# 10 1994 12 L73 1 8
# # ... with 122 more rows
Forgive me if this question is self explanatory, but I am still trying to get to grips with some more of R's features.
I am currently trying to use R to replot a cumulative frequency with lines I plotted in excel.
I think a lot of my problems are coming from having a lot of cells with no data, as I keep getting the warning:
Warning messages:
1: Removed 81 row(s) containing missing values (geom_path).
2: Removed 81 row(s) containing missing values (geom_path).
3: Removed 81 row(s) containing missing values (geom_path).
This is because each column represents a recording frequency witch witch only occurred for 21 days, with a 20 day rest period between each recording period.
I have tried using geom_ steps() and geom_points() but I end up with these:
When I use the geom_line() function the axis are created but nothing is plotted.
The dates on the x axis also look horrendous, I tried using the code + theme(axis.text.x = element_text(angle = 90)) to rotate the labels but it still looks terrible, I am not sure if its just to many dates.
Here is the code I have been trying to get to work for the various geom functions:
ggplot() +
geom_point(aes(x = Date, y = d2s1, group = 1), data = cf) +
geom_point(aes(x = Date, y = d20s1, group = 1), data = cf) +
geom_point(aes(x = Date, y = d10s1, group = 1), data = cf) +
theme(axis.text.x = element_text(angle = 90))
ggplot() +
geom_step(aes(x = Date, y = d2s1, group = 1), data = cf) +
geom_step(aes(x = Date, y = d20s1, group = 1), data = cf) +
geom_step(aes(x = Date, y = d10s1, group = 1), data = cf) +
theme(axis.text.x = element_text(angle = 90))
ggplot() +
geom_line(aes(x = Date, y = d2s1, group = 1), data = cf) +
geom_line(aes(x = Date, y = d20s1, group = 1), data = cf) +
geom_line(aes(x = Date, y = d10s1, group = 1), data = cf) +
theme(axis.text.x = element_text(angle = 90))
I hope this all makes sense and thank you all in advance for any help you can provide!
I read in the data using read.csv("cf.csv").
I have attached the output of dput(cf) below.
structure(list(Date = c("08/11/2019", "09/11/2019", "10/11/2019",
"11/11/2019", "12/11/2019", "13/11/2019", "14/11/2019", "15/11/2019",
"16/11/2019", "17/11/2019", "18/11/2019", "19/11/2019", "20/11/2019",
"21/11/2019", "22/11/2019", "23/11/2019", "24/11/2019", "25/11/2019",
"26/11/2019", "27/11/2019", "28/11/2019", "29/11/2019", "30/11/2019",
"01/12/2019", "02/12/2019", "03/12/2019", "04/12/2019", "05/12/2019",
"06/12/2019", "07/12/2019", "08/12/2019", "09/12/2019", "10/12/2019",
"11/12/2019", "12/12/2019", "13/12/2019", "14/12/2019", "15/12/2019",
"16/12/2019", "17/12/2019", "18/12/2019", "19/12/2019", "20/12/2019",
"21/12/2019", "22/12/2019", "23/12/2019", "24/12/2019", "25/12/2019",
"26/12/2019", "27/12/2019", "28/12/2019", "29/12/2019", "30/12/2019",
"31/12/2019", "01/01/2020", "02/01/2020", "03/01/2020", "04/01/2020",
"05/01/2020", "06/01/2020", "07/01/2020", "08/01/2020", "09/01/2020",
"10/01/2020", "11/01/2020", "12/01/2020", "13/01/2020", "14/01/2020",
"15/01/2020", "16/01/2020", "17/01/2020", "18/01/2020", "19/01/2020",
"20/01/2020", "21/01/2020", "22/01/2020", "23/01/2020", "24/01/2020",
"25/01/2020", "26/01/2020", "27/01/2020", "28/01/2020", "29/01/2020",
"30/01/2020", "31/01/2020", "01/02/2020", "02/02/2020", "03/02/2020",
"04/02/2020", "05/02/2020", "06/02/2020", "07/02/2020", "08/02/2020",
"09/02/2020", "10/02/2020", "11/02/2020", "12/02/2020", "13/02/2020",
"14/02/2020", "15/02/2020", "16/02/2020", "17/02/2020"), d2s1 = c(6L,
11L, 13L, 20L, 25L, 35L, 42L, 49L, 49L, 51L, 53L, 54L, 60L, 65L,
69L, 73L, 76L, 80L, 85L, 86L, 86L, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), d10s2 = c(0L, 6L, 8L,
10L, 11L, 14L, 14L, 15L, 18L, 19L, 21L, 21L, 22L, 22L, 24L, 24L,
26L, 27L, 31L, 32L, 32L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), d20s1 = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 3L, 9L, 13L, 19L, 24L, 26L, 32L, 38L, 44L, 46L, 48L,
50L, 56L, 62L, 64L, 64L, 73L, 83L, 92L, 99L, 105L, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), d20s2 = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 0L, 2L, 2L, 3L, 4L, 14L, 15L, 23L, 25L, 27L, 36L, 37L, 38L,
43L, 43L, 45L, 47L, 50L, 53L, 56L, 57L, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), d10s1 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 2L, 15L, 19L, 22L, 33L, 34L, 37L,
37L, 39L, 41L, 48L, 50L, 52L, 56L, 62L, 64L, 65L, 68L, 72L, 77L,
84L), d2s2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 4L, 4L, 4L, 4L, 4L, 7L, 9L, 9L, 12L, 12L,
14L, 17L, 17L, 23L, 24L, 24L, 24L, 26L, 26L, 30L, 33L)), class = "data.frame", row.names = c(NA,
-102L)
The function geom_step() has an argument na.rm to remove NA values, which is FALSE by default. changing this to TRUE should give you the plots that you want. Alternatively you could change the NA data to zeroes for the same effect.
The crowded x-axis is typical of what happens when the data is stored as a factor, rather than a date. This will be related to how you read in your data, which you haven't shown.
I am plotting two variables with the following code:
ggplot()+
geom_point(data=subset(afc_reopening, key == "mean_spend_all"),
aes(x=day_after_reopening, y=mean_spend_cases * 100, color = winner2016)) +
stat_smooth(data=subset(afc_reopening,key == "mean_spend_all"),
formula = y~as.numeric(x), se = F,
aes(x=day_after_reopening, y=mean_spend_cases*100, color = winner2016))+
geom_point(data=subset(afc_reopening, key == "new_case_rate_07da"),
aes(x=day_after_reopening, y=mean_spend_cases,),) +
stat_smooth(data=subset(afc_reopening,key == "new_case_rate_07da"),
formula = y~as.numeric(x), se = F,
aes(x=day_after_reopening, y=mean_spend_cases, color = winner2016),)+
facet_wrap(.~deciles_income,scales = 'free')+
theme(legend.position = 'top')+
ylab('Change in consumer spending relative to 14th January and Past 7 Days New Cases Average')+
labs(title = "Change in spending and Past 7 Days New Cases Average in US Counties Grouped by Income Decile") +
scale_x_continuous(limits = c(-100,100))
The code results in the following graph:
The only problem I am having with the graph is that the points for both values are in the same color. I would like to have different color spectrum for spending and for cases (with each still being grouped by the winner of the 2016 election). How do I do this in ggplot?
Here is the output of the dput() function:
structure(list(day_month_year = structure(c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 18364, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 18392, NA, NA, NA, NA, NA, NA, NA, 18427,
18392, NA, NA, NA, 18329, NA, 18427, NA, NA, NA, NA, NA, NA,
NA, NA, 18301, NA, NA, NA, NA, NA, NA, 18294, NA, NA, NA, NA,
NA, 18441, NA, NA, NA, 18378, NA, NA, 18420, 18294, NA, NA, NA,
NA), tzone = "Europe/Prague", class = "Date"), deciles_income = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 7L, NA, NA, NA, NA, NA, NA, NA,
3L, 5L, NA, NA, NA, 2L, NA, 9L, NA, NA, NA, NA, NA, NA, NA, NA,
5L, NA, NA, NA, NA, NA, NA, 8L, NA, NA, NA, NA, NA, 6L, NA, NA,
NA, 2L, NA, NA, 3L, 9L, NA, NA, NA, NA), winner2016 = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Donald Trump",
NA, NA, NA, NA, NA, NA, NA, NA, NA, "Hillary Clinton", NA, NA,
NA, NA, NA, NA, NA, "Hillary Clinton", "Hillary Clinton", NA,
NA, NA, "Hillary Clinton", NA, "Donald Trump", NA, NA, NA, NA,
NA, NA, NA, NA, "Hillary Clinton", NA, NA, NA, NA, NA, NA, "Hillary Clinton",
NA, NA, NA, NA, NA, "Hillary Clinton", NA, NA, NA, "Hillary Clinton",
NA, NA, "Donald Trump", NA, NA, NA, NA, NA), key = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "new_case_rate_07da",
NA, NA, NA, NA, NA, NA, NA, NA, NA, "mean_spend_all", NA, NA,
NA, NA, NA, NA, NA, "new_case_rate_07da", "new_case_rate_07da",
NA, NA, NA, "mean_spend_all", NA, "mean_spend_all", NA, NA, NA,
NA, NA, NA, NA, NA, "new_case_rate_07da", NA, NA, NA, NA, NA,
NA, "new_case_rate_07da", NA, NA, NA, NA, NA, "new_case_rate_07da",
NA, NA, NA, "mean_spend_all", NA, NA, "new_case_rate_07da", "new_case_rate_07da",
NA, NA, NA, NA), mean_spend_cases = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 2.98999975990396, NA, NA,
NA, NA, NA, NA, NA, NA, NA, -0.163540740740741, NA, NA, NA, NA,
NA, NA, NA, 8.37364285714286, 4.66982142857143, NA, NA, NA, -0.0154640434782609,
NA, -0.0665955440414508, NA, NA, NA, NA, NA, NA, NA, NA, 0, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 12.0187207792208,
NA, NA, NA, -0.187623043478261, NA, NA, 7.48311044417767, 0,
NA, NA, NA, NA)), row.names = c(NA, -75L), groups = structure(list(
day_month_year = structure(c(18294, 18294, 18301, 18329,
18364, 18378, 18392, 18392, 18420, 18427, 18427, 18441, NA
), tzone = "Europe/Prague", class = "Date"), deciles_income = c(8L,
9L, 5L, 2L, 3L, 2L, 5L, 7L, 3L, 3L, 9L, 6L, NA), .rows = structure(list(
57L, 71L, 50L, 39L, 16L, 67L, 35L, 26L, 70L, 34L, 41L,
63L, c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L, 13L, 14L, 15L, 17L, 18L, 19L, 20L, 21L, 22L, 23L,
24L, 25L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 36L, 37L,
38L, 40L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 51L,
52L, 53L, 54L, 55L, 56L, 58L, 59L, 60L, 61L, 62L, 64L,
65L, 66L, 68L, 69L, 72L, 73L, 74L, 75L)), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, 13L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
Using this code:
ggplot(Template.2006.2017, aes(x=Disaster_category, y=Total_US_received_from.CERF)) +
ggtitle("MEAN Total Funding Received CERF") +
geom_bar(stat="summary", fun.y = "mean", fill="lightblue") +
coord_flip() + labs(y="US$") + labs(x="")
I've created this bar chart:
showing the funding for various disaster categories. Now, I would like to remove all the categories that have received zero funding (Other, Insect infestation, Disease and missing/NA). How can this be done in r?
Here's my data (compressed):
structure(list(Disaster_category = structure(c(1L, 15L, 17L,
15L, 5L, 8L, 13L, 8L, 2L, 8L, 2L, 3L, 8L, 2L, 8L, 2L, 10L, 5L,
7L, 8L, 15L, 2L, 8L, 2L, 15L, 15L, 8L, 15L, 2L, 17L, 2L, 7L,
2L, 8L, 2L, 3L, 2L, 8L, 8L, 2L, 8L, 17L, 2L, 3L, 8L, 8L, 2L,
8L, 8L, 8L, 2L, 8L, 3L, 2L, 3L, 2L, 8L, 2L, 3L, 8L, 2L, 8L, 2L,
15L, 5L, 8L, 13L, 8L, 15L, 2L, 8L, 2L, 3L, 2L, 3L, 15L, 8L, 3L,
2L, 3L, 8L, 2L, 3L, 2L, 8L, 2L, 8L, 15L, 2L, 8L, 8L, 5L, 2L,
8L, 2L, 3L, 2L, 17L, 2L, 17L, 2L, 4L, 5L, 8L, 8L, 2L, 8L, 15L,
2L, 15L, 15L, 7L, 2L, 8L, 2L, 15L, 15L, 7L, 8L, 17L, 2L, 15L,
8L, 2L, 17L, 2L, 3L, 8L, 2L, 5L, 2L, 8L, 2L, 8L, 8L, 15L, 2L,
8L, 2L, 15L, 8L, 2L, 15L, 8L, 7L, 8L, 15L, 2L, 8L, 8L), .Label = c("",
" ", "Disease", "Disease related disaster", "Drought", "Drought & storm",
"Extreme temperature / fire", "Flood", "Flood & drought", "Insect infestation",
"Insect infestation & drought", "Landslide & flood", "Landslide / mudslide",
"Other", "Storm", "Storm & flood", "Winter"), class = "factor"),
Total_US_received_from.CERF = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 678307.8333, 678307.8333,
678307.8333, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 1110469.5, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 1905355, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2493246,
2493246, 2493246, 2493246, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 333333.3333, 333333.3333, 333333.3333,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
Total_US_received = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 15507224.5, 15507224.5, 15507224.5,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 333333.3333, 333333.3333,
333333.3333, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), Total_US_required = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 20502064.83,
20502064.83, 20502064.83, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 3070192, NA, NA, NA, NA, NA, NA, NA, NA, NA,
49955895.25, 49955895.25, 49955895.25, 49955895.25, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 333333.3333,
333333.3333, 333333.3333, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA)), row.names = c(NA, 150L), class = "data.frame")
Consider calculating group means with ave before plotting and then subset all rows with means greater than zero as the underlying data for plotting:
# ADD NEW INLINE GROUP MEAN
Template.2006.2017$CERF_categ_mean <- with(Template.2006.2017,
ave(Total_US_received_from.CERF, Disaster_category,
FUN=function(x) mean(x, na.rm=TRUE)))
# SUBSET DATAFRAME
sub_df <- subset(Template.2006.2017, CERF_categ_mean > 0)
# PLOT SUBSETTED DATA
ggplot(sub_df, aes(x=Disaster_category, y=Total_US_received_from.CERF)) +
ggtitle("MEAN Total Funding Received CERF") +
geom_bar(stat="summary", fun.y = "mean", fill="lightblue") +
coord_flip() + labs(y="US$") + labs(x="")
Would removing the NA values from the dataframe solve your problem?
library(tidyverse)
Template.2006.2017 %>%
filter(!is.na(Total_US_received_from.CERF)) %>%
ggplot(aes(x=Disaster_category, y=Total_US_received_from.CERF)) +
ggtitle("MEAN Total Funding Received CERF") +
geom_bar(stat="summary", fun.y = "mean", fill="lightblue") +
coord_flip() + labs(y="US$") + labs(x="")