У меня есть набор данных, который имеет значения диаметра для 4 групп лечения в течение нескольких разных месяцев.Я планирую Diameter ~ Treatment
для каждого месяца, а также Diameter changes between months ~ Treatment
.
Набор данных выглядит следующим образом:
# the data that contains diameter for each month and diameter differences between months
> head(gatheredDiameterAndTreatmentData)
Treatment Month Diameter
1 Aux_Drop Diameter_mm.Sep01 55.88
2 Aux_Spray Diameter_mm.Sep01 63.50
3 DMSO Diameter_mm.Sep01 66.04
4 Water Diameter_mm.Sep01 43.18
5 Aux_Drop Diameter_mm.Sep01 38.10
6 Aux_Spray Diameter_mm.Sep01 76.20
# data that contains mean diameter and mean diameter changes for each month
> head(subMeansDiameter)
Treatment Month Diameter SEdiam
1 Aux_Drop Diameter_mm.Dec 83.63857 29.62901
2 Aux_Drop Diameter_mm.Feb01 101.20923 24.84024
3 Aux_Drop Diameter_mm.Feb02 110.00154 22.51364
4 Aux_Drop Diameter_mm.Jan 93.00308 25.13485
5 Aux_Drop Diameter_mm.Mar 116.84000 22.19171
6 Aux_Drop Diameter_mm.Nov01 74.50667 17.40454
Вот мой код:
# assign the factors name to pick
factorsOnXaxis.DiameterByMonth = c(
"Diameter_mm.Sep01", "DiameterDiff.Sep01ToDec", "Diameter_mm.Dec", "DiameterDiff.DecToMar", "Diameter_mm.Mar")
# assign name to above factors
factorsOnXaxisName = c('Sep','Dec-Sep','Dec', 'Mar-Dec', 'Mar')
# start plotting
gatheredDiameterAndTreatmentData %>%
subset(Diameter != "NA") %>%
ggplot(aes(x = factor(Month), y = Diameter)) +
geom_point(aes(colour = Treatment), na.rm = TRUE,
position = position_dodge(width = 0.2)) +
geom_point(data = subMeansDiameter, size = 4, aes(colour = Treatment),
na.rm = TRUE, position = position_dodge(width = 0.2)) +
theme_bw() + # remove background
# add custom color to the "Treatment" levels
scale_colour_manual(
values = c("Aux_Drop" = "Purple", "Aux_Spray" = "Red",
"DMSO" = "Orange", "Water" = "Green")) +
# rearrange the x-axis
scale_x_discrete(limits = factorsOnXaxis.DiameterByMonth, labels = factorsOnXaxisName) +
# to connect the "subMeans - Diameter" values across time points
geom_line(data = subMeansDiameter, aes(
x = Month, y = Diameter, group = Treatment, colour = Treatment),
position = position_dodge(width = 0.2))
Что дает мне такой график:
![enter image description here](https://i.stack.imgur.com/Lcu10.png)
Вместо geom_line
соединительной линии для каждого момента времени, которую я хочу, чтобы линиябыть объединенным между указанными коэффициентами оси x, то есть
- в период с сентября по декабрь, март
- в период с декабря по сентябрь по март-декабрь
Я пытался манипулировать строкой кода, которая использует geom_line
как:
geom_line(data = subMeansDiameter, aes(
x = c("DiameterDiff.Sep01ToDec", "DiameterDiff.DecToMar"), y = Diameter, group = Treatment, colour = Treatment),
position = position_dodge(width = 0.2))
, чтобы соединить линию между Dec-Sep
и Mar-Dec
.
Но это не работает.Как я могу изменить свой код?
Вот файл данных, который я сохраняю как * .tsv.
builtDiameterAndTreatmentData = http://s000.tinyupload.com/index.php?file_id=38251290073324236098
subMeans = http://s000.tinyupload.com/index.php?file_id=93947954496987393129