मैं आर में एक साधारण डेटा संरचना बनाने की कोशिश कर रहा हूं और ऐसा करने की कोशिश में बहुत असफल हो रहा हूं। मेरा लक्ष्य ऐसा कुछ एक साथ रखना है जो इस तरह दिखता है:
c("#E08214" = "#E08214", "#E08216" = "#E08216")
डेटा संरचना का उद्देश्य एक अजीब बार प्लॉट में प्रत्येक बार के रंगों को मैन्युअल रूप से असाइन करने में मेरी सहायता करना है (हेक्स रंगों को मेरे डेटाफ्रेम में पहचाना जाता है, और मैं प्रत्येक बार के रंग को सेट करने के लिए scale_colour_manual(values = c("#E08214" = "#E08214", "#E08216" = "#E08216"))
का उपयोग करने की योजना बना रहा हूं।
मैं अपने रंगों की सूची इस प्रकार बना सकता हूं: levels(df$color)
। मैंने इस सूची को डेटा संरचना में बदलने की कोशिश की, जैसा कि ऊपर की पहचान करके किया गया है:
assignments = c()
for (color in levels(df$color)) {
assignments <- c(color = color, assignments)
}
लेकिन यह शानदार ढंग से विफल रहता है। इस प्रश्न पर दूसरों को प्रदान करने में सक्षम कोई भी मदद की सराहना की जाएगी।
पूर्ण कोड नमूना:
library(ggplot2)
library(data.table)
url <- 'https://gist.githubusercontent.com/duhaime/5e06cb7d703dc818f06aa49da67ed13b/raw/1d597e4bf523d925ef3b9873e622c96d7877d347/pop.df'
df <- fread(url)
colnames(df) <- c('vid', 'frame.idx', 'box.idx', 'color', 'percent')
ggplot(df, aes(x=frame.idx, y=percent)) +
geom_bar(stat='identity', aes(fill='color')) +
facet_wrap(~vid, ncol=1) +
guides(fill=FALSE) +
scale_fill_identity()
2 जवाब
मुझे लगता है कि आप इस तरह कुछ ढूंढ रहे हैं:
ggplot(df, aes(x=frame.idx, y=percent, group=frame.idx, order=box.idx)) +
geom_col(position="stack", aes(fill=color), size=0) +
facet_wrap(~vid, ncol=1) +
guides(fill=FALSE) +
scale_fill_identity() +
theme_bw() +
theme(panel.grid.major.x=element_blank())
मुझे पूरा यकीन है कि आपके डेटा को विज़ुअलाइज़ेशन पसंद के रूप में कुछ काम करने की ज़रूरत है।
names(assignments) <- levels(df$color)
को भी सेट करने का प्रयास करें
तो आप नीचे के रूप में कोड कर सकते हैं
assignments <- levels(df$color)
names(assignments) <- assignments
या जिस तरह से आप वर्तमान में कर रहे हैं
assignments = c()
for (color in levels(df$color)) {
assignments <- c(color, assignments)
}
names(assignments) <- assignments