В изкуствените данни, които създадох за MWE по-долу, се опитах да демонстрирам същността на скрипт, който създадох в R. Както може да се види от графиката, която се получава от този код, при едно от моите условия не имат стойност „Не“, за да завършите серията.
Казаха ми, че освен ако не мога да направя тази последна колона, която за съжаление няма допълнителни серии, толкова тънка, колкото колоните на друго място в графиката, няма да ми бъде разрешено да използвам тези графики. Това за съжаление е проблем, защото скриптът, който написах, произвежда стотици графики едновременно, пълни със статистика, индикатори за значимост, разпространени ленти за грешки и интелигентни корекции на оста y (тези функции, разбира се, не присъстват в MWE).
Малко други коментари:
Не е гарантирано, че тази колона за изключения е в края на графиката... така че ръчното настройване, за да се принуди серията да промени цвета и да се обърне редът, оставяйки допълнителното пространство от дясната страна, не е надеждно.
Опитах се да симулирам данните като константа 0, така че серията „да присъства“, но невидима, но както би се очаквало, редът на серията c(Не,Да) прави това пропускане на интервал, което също е неприемливо. Ето как беше отговорено на същия въпрос тук, но за съжаление не работи за мен с моите ограничения: Постоянна ширина за geom_bar в случай на липсващи данни и Включете място за липсващо ниво на фактор, използвано в естетиката на запълване в geom_boxplot
Опитах се да направя това и с фасети, но там възникнаха множество проблеми, включително прекъсвания на редове и грешки в анотациите, които добавям към оста x.
MWE:
library(ggplot2)
print("Program started")
x <- c("1","2","3","1","2","3","4")
s <- c("No","No","No","Yes","Yes","Yes","Yes")
y <- c(1,2,3,2,3,4,5)
df <- as.data.frame(cbind(x,s,y))
print(df)
gg <- ggplot(data = df, aes_string(x="x", y="y", weight="y", ymin=paste0("y"), ymax=paste0("y"), fill="s"));
dodge_str <- position_dodge(width = NULL, height = NULL);
gg <- gg + geom_bar(position=dodge_str, stat="identity", size=.3, colour = "black")
print(gg)
print("Program complete - a graph should be visible.")
a
липсва и мястото му е запазено, но тукNo
липсва и мястото му е изместено. Странно, не мога да кажа защо се случва това. - person tonytonov   schedule 06.03.2015