Я пытаюсь создать составной участок с комбинацией цветов и узоров. Я знаю, что R немного ограничен, когда дело касается заливки узором. Я попытался найти, но смог найти только patternplot, который ограничен столбчатыми и круговыми диаграммами. Любая помощь высоко ценится!
Подробности о данных: Есть четыре фазы, заданные P1, P2, P3 и P4. За каждой фазой следует разрешение (С). По оси ординат отложена вероятность (ось ординат) каждой фазы и соответствующие зазоры во времени (от 0 до 5 секунд) по оси абсцисс. Фазы будут окрашены в сплошной цвет, а зазор - в виде решетки под углом 45 градусов. Цвет рисунка зазора соответствует соответствующей фазе. Например, на рисунке ниже P1 сплошной серый цвет, поэтому зазоры P1_C и заштрихованы серым цветом и так далее.
Данные и текущий прогресс:
mydat= data.frame("1"=c(1,0,0,0,0,0,0,0), "2"=c(0,0.9,0.1,0,0,0,0,0),
"3"=c(0,0,1,0,0,0,0,0), "4"=c(0,0,0,0.6,0.25,0.15,0,0),
"5"=c(0,0,0,0,0,0.25,0.75,0), "6"=c(0.1,0,0,0,0,0,0,0.9))
rownames(mydat)=c("P1","P1_C","P2","P2_C","P3","P3_C","P4","P4_C")
colnames(mydat)=seq(0,5,1)
mydat=t(mydat)
mydat=mydat[,c(8,7,6,5,4,3,2,1)]
melted = melt(mydat, 1)
colnames(melted)=c("time","Phase","Probability")
ggplot(melted, aes(x = time, y = Probability, fill=Phase)) +
geom_area()+
scale_fill_manual(values=c("NA","deepskyblue","NA","darkblue","NA","lightgreen","NA","gray"))+
scale_x_continuous("Time",limits=c(0,5), breaks = c(seq(0,5,1)),expand = c(0,0)) +
scale_y_continuous("Probability", breaks = c(seq(0,1,0.1)), expand = c(0,0)) +
coord_cartesian(ylim = c(0,1))+
theme_bw()
В настоящее время у меня установлен уровень допуска NA, но в конечном итоге я бы хотел, чтобы окончательный график был таким, как показано ниже. Спасибо!
Спасибо @kath. Но я считаю, что решения здесь ограничиваются барплотами.
Возможно, используя gridSVG или то, что описано здесь: stackoverflow.com/questions/46992932/….
Спасибо за подсказку @Anonymouscoward. Попытаюсь!
ggpattern: github.com/coolbutuseless/ggpattern





О ggplot2 и паттернах см. Обсуждение здесь: stackoverflow.com/questions/2895319/…