मैं डेटा के एक वर्ष के महत्वपूर्ण है कि इस तरह दिखता है:ggplot2 barplot साथ आर में एक द्विआधारी स्पार्कलाइन साजिश बिल्डिंग
datetime, key, value
1/1/15, 7k Steps, 1
1/1/15, Ate Poorly, 1
1/1/15, Audiobook, 1
1/1/15, Befriend, 1
1/1/15, Called Mom, 1
1/1/15, Code, 1
1/1/15, Create, 1
1/1/15, Critical, 1
1/1/15, Emailed Friend, 1
1/2/15, 10k Steps, 1
1/2/15, Ate Poorly, 1
1/2/15, Audiobook, 1
1/2/15, Befriend, 1
1/2/15, Called Mom, 1
1/2/15, Create, 1
1/2/15, Emailed Friend, 1
1/2/15, Exercise, 1
1/2/15, Friend Contact, 1
1/2/15, Great Day, 1
1/2/15, Write, 1
1/3/15, 7k Steps, 1
1/3/15, Ate Poorly, 1
1/3/15, Befriend, 1
1/3/15, Create, 1
1/3/15, Emailed Friend, 1
1/3/15, Friend Contact, 1
1/3/15, Great Day, 1
1/3/15, Happiness, 1
1/3/15, Health, 1
1/3/15, Videogame, 1
1/3/15, Walked With Michelle, 1
1/3/15, Write, 1
1/4/15, 7k Steps, 1
1/4/15, Ate Poorly, 1
1/4/15, Audiobook, 1
1/4/15, Great Day, 1
1/4/15, Happiness, 1
1/4/15, Health, 1
1/4/15, Impatient, 1
1/4/15, Love, 1
1/4/15, Movie With Michelle, 1
मैं एक साजिश है कि प्रत्येक दिन के लिए सलाखों के साथ प्रत्येक कुंजी के लिए एक पंक्ति प्रदर्शित करता है बनाना चाहते हैं, उस कुंजी के लिए 1 है।
यह एक मैं दर्दनाक अजगर और matplotlib का उपयोग कर गाया था है: यहाँ उत्पादन मैं इच्छा का एक उदाहरण है।
मैं आर, शायद, ggplot2 में इस तरह की साजिश प्रस्तुत करने का सबसे अच्छा और सरल तरीका ढूंढ रहा हूं। मैंने प्रत्येक कुंजी के लिए एक लूप के साथ ggplot2 में एक बार प्लॉट का उपयोग करने की योजना बनाई थी। यहां मेरे कोड का एक उदाहरण दिया गया है:
library(ggplot2)
library(reshape)
#library(ggtheme)
# 2015 Lifedata Processing
d <- read.csv("lifedata_2015.csv")
d$datetime <- as.Date(d$datetime, "%m/%d/%Y")
# Create a new dataframe with a subset of keys
r <- d[d$key %in% c("Read", "Audiobook"), ]
# Put 1s in all values.
r$value <- 1
# Generate a data frame for each day with a value of 1 and a key of "alldates"
mydates <- data.frame("datetime" = seq(as.Date("2015/1/1"), as.Date("2015/12/31"), "days"), "key" = "alldates", "value" = 1)
# combine two data frames, one after the other
n <- rbind(r, mydates)
# Transform into a wide data frame based on datetime and key with mean as the value.
c <- cast(n, datetime~key, mean)
# Turn NaNs into 0
c[is.na(c)] = 0
for(name in c("Read", "Audiobook")){
plt <- c(plt, ggplot(data=c, aes_string(x="datetime", y=name)) +
geom_bar(stat="Identity", width=1))
print(plot)
}
svg("~/Desktop/tagplot.svg")
grid.arrange(plt, ncol = 1, main = "Read")
dev.off()
यह तकनीक काम नहीं कर रही थी।
घटना डेटा को साजिश करने का एक बेहतर तरीका क्या है जैसा कि मैंने उदाहरण में ऊपर दिया है?
[वर्थ एक नज़र] (https://github.com/htmlwidgets/sparkline)? यह सुनिश्चित नहीं है कि यह कितना मजबूत है, लेकिन यह मेरी "कोशिश करने" सूची पर है। – alistaire