मुझे लगता है कि यह पुराना है, लेकिन हो सकता है कि यह समारोह जो मैंने बनाया है वह किसी के लिए उपयोगी हो:
order_axis<-function(data, axis, column)
{
# for interactivity with ggplot2
arguments <- as.list(match.call())
col <- eval(arguments$column, data)
ax <- eval(arguments$axis, data)
# evaluated factors
a<-reorder(with(data, ax),
with(data, col))
#new_data
df<-cbind.data.frame(data)
# define new var
within(df,
do.call("<-",list(paste0(as.character(arguments$axis),"_o"), a)))
}
अब, इस फ़ंक्शन के साथ आप ggplot2 के साथ अंतःक्रियात्मक रूप से साजिश कर सकते हैं, जैसे:
ggplot(order_axis(df, AXIS_X, COLUMN_Y),
aes(x = AXIS_X_o, y = COLUMN_Y)) +
geom_bar(stat = "identity")
जैसा कि देखा जा सकता है, order_axis
फ़ंक्शन एक और नाम के साथ एक नया कॉलम बनाता है , लेकिन _o
अंत में एक साथ । इस नए कॉलम में आरोही क्रम में स्तर हैं, इसलिए ggplot2 स्वचालित रूप से उस क्रम में प्लॉट करता है।
यह कुछ हद तक सीमित है (केवल चरित्र या कारक और स्तंभों के संख्यात्मक संयोजन और आरोही क्रम में) के लिए काम करता है, लेकिन मुझे अभी भी यह बहुत उपयोगी लगता है।