Tôi có một biểu đồ thanh xếp chồng lên nhau trông như thế này:Tạo một thang màu khác nhau cho mỗi thanh trong một ggplot2 xếp chồng lên nhau biểu đồ hình cột
Trong khi các màu sắc nhìn đẹp, nó là khó hiểu có rất nhiều các màu tương tự đại diện cho các loại thuốc khác nhau. Tôi muốn có một bảng màu riêng biệt cho mỗi thanh trong đồ thị, ví dụ, class1 có thể sử dụng bảng "Blues" trong khi class2 có thể sử dụng bảng "BuGn" (tên bảng màu được tìm thấy here)
Tôi có đã tìm thấy một số trường hợp trong đó mọi người đã mã hóa màu sắc theo cách thủ công cho mỗi thanh (chẳng hạn như here), nhưng tôi không chắc chắn liệu tôi có thể yêu cầu không - những thanh này sẽ cần phải dựa trên bảng màu, vì có quá nhiều loại thuốc trong mỗi loại thuốc.
Mã để tạo ra các đồ thị trên:
library(ggplot2)
library(plyr)
library(RColorBrewer)
drug_name <- c("a", "a", "b", "b", "b", "c", "d", "e", "e", "e", "e", "e", "e",
"f", "f", "g", "g", "g", "g", "h", "i", "j", "j", "j", "k", "k",
"k", "k", "k", "k", "l", "l", "m", "m", "m", "n", "o")
df <- data.frame(drug_name)
#get the frequency of each drug name
df_count <- count(df, 'drug_name')
#add a column that specifies the drug class
df_count$drug_class <- vector(mode='character', length=nrow(df_count))
df_count$drug_class[df_count$drug_name %in% c("a", "c", "e", "f")] <- 'class1'
df_count$drug_class[df_count$drug_name %in% c("b", "o")] <- 'class2'
df_count$drug_class[df_count$drug_name %in% c("d", "h", "i")] <- 'class3'
df_count$drug_class[df_count$drug_name %in% c("g", "j", "k", "l", "m", "n")] <- 'class4'
#expand color palette (from http://novyden.blogspot.com/2013/09/how-to-expand-color-palette-with-ggplot.html)
colorCount = length(unique(df_count$drug_name))
getPalette = colorRampPalette(brewer.pal(9, "Set1"))
test_plot <- ggplot(data = df_count, aes(x=drug_class, y=freq, fill=drug_name)) + geom_bar(stat="identity") + scale_fill_manual(values=getPalette(colorCount))
test_plot
Bạn có thể kiểm tra [** Nhiều thang màu trong một âm mưu thanh xếp chồng lên nhau sử dụng ggplot **] (http://stackoverflow.com/questions/19568901/multiple-colour-scales- in-one-stacked-bar-plot-using-ggplot). Thoạt nhìn nó có vẻ giống như một trường hợp tương tự. – Henrik