Dữ liệu:
df <- data.frame(
type = c("T", "F", "P", "T", "F", "P", "T", "F", "P", "T", "F", "P"),
size = c("50%", "50%", "50%", "100%", "100%", "100%", "150%", "150%", "150%", "200%", "200%", "200%"),
amount = c(48.4, 48.1, 46.8, 25.9, 26, 24.9, 21.1, 21.4, 20.1, 20.8, 21.5, 16.5)
)
Tôi cần vẽ biểu đồ thanh của dữ liệu trên bằng ggplot (trục x -> type
, trục y -> amount
, nhóm theo size
). Khi tôi sử dụng mã sau, tôi không nhận được biến type
và cũng như size
theo thứ tự được hiển thị trong dữ liệu. Vui lòng xem hình. Tôi đã sử dụng mã sau cho điều đó.
ggplot(df, aes(type, amount , fill=type, group=type, shape=type, facets=size)) +
geom_bar(width=0.5, position = position_dodge(width=0.6)) +
facet_grid(.~size) +
theme_bw() +
scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"),
labels = c("T", "F", "P"))
.
Để khắc phục sự cố thứ tự, tôi đã sử dụng phương pháp nhân tố cho biến "loại" bằng cách sử dụng như sau. Vui lòng xem thêm hình.
temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P"))
Tuy nhiên, bây giờ tôi không biết làm thế nào để sửa thứ tự cho biến size
. Nó phải là 50%, 100%. 150% và 200%.