Есть некоторые проблемы, чтобы запустить ваш код. Во-первых, я думаю, вы пропустили ту часть, где вы растопить данные из данных, вы показали, чтобы получить c.data
:
c.data <- melt(dat, id.var="Subject")
Во-вторых, ваш subject
должен быть Subject
:
В-третьих, так как вы проходите как x
и y
аргументы в пользу эстетики, вы должны сделать stat = "identity"
. В противном случае вы получите предупреждение, потому что аргумент по умолчанию - stat = "bin"
.
Наконец, чтобы заказать участок по вашему желанию, вам необходимо будет соответственно установить уровни . Итак, вот полный код:
# set factor levels
dat$Subject <- factor(dat$Subject, levels = dat$Subject[order(dat$Marks1)])
require(reshape2)
c.data <- melt(dat, id.var="Subject")
require(plyr)
n.data = ddply(c.data,.(Subject), transform, pos = cumsum(value) - 0.5*value)
require(ggplot2)
plot = ggplot(n.data, aes(x = Subject, y = value)) +
geom_bar(stat = "identity", colour = "#000000", aes(fill = variable)) +
geom_text(aes(label = value, y = pos), size = 3, face="bold", colour="white") +
scale_fill_manual(values=c("#FFFFFF", "#000000")) +
scale_y_continuous(limits=c(0, 100), breaks=seq(0,100, by = 10)) +
theme(axis.line = element_line(),
axis.text.x=element_text (angle=60,hjust=1,colour="black"),
axis.text.y=element_text(colour="black"),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.background = element_blank(),
axis.ticks=element_blank()) +
labs(fill="") + scale_colour_discrete(breaks=NULL)
А вот сюжет:
Спасибо Arun для мгновенного ответа, но ошибка просто продолжается снова я имею в виду не существует никакой разницы в графике созданный даже после необходимых изменений, данные графика отлично работают до тех пор, пока не будет применена функция ddply, и она вернется после применения функции ddply. – Zack
. С данными, которые вы показали выше, код, который я показал, как вы можете видеть, работает как вы хотели (iiuc). Таким образом, вам придется показывать данные, где это не работает. До тех пор я не могу отлаживать. – Arun
n.data показывает ошибку, поэтому мне нужно исправить n.data, но я не могу, пожалуйста, помогите мне с этим – Zack