मुझे वास्तव में फ्लेक्सडैशबोर्ड और शाइनीडैशबोर्ड में आर के valueboxes का स्वच्छ रूप पसंद है:
क्या एक स्थिर रिपोर्ट के लिए समान आउटपुट आसानी से उत्पन्न करने के लिए परिचित टूल (यानी ggplot2
) का उपयोग करके कोई पैकेज या नुस्खा है? उदाहरण के लिए, RMarkdown से बुना हुआ PDF दस्तावेज़ में
संपादित करें:
कुछ कोशिशों के बाद मुझे ggplot2 (नीचे उत्तर) का उपयोग करके कुछ प्रयोग करने योग्य मिला। अन्य उत्तरों का स्वागत है!
2 जवाब
ggplot2
के geom_tile
का उपयोग रंगीन आयत बनाने के लिए किया जा सकता है, और फिर geom_text
का उपयोग लेबल/जानकारी जोड़ने के लिए किया जा सकता है। shiny
में infobox
/ valuebox
का उपयोग करने में आसानी की तुलना में समाधान क्लिंक है, लेकिन यह करेगा।
library(ggplot2)
df <- data.frame(
x = rep(seq(2, 15, 6.5), 2),
y = c(rep(2,3), rep(6.5, 3)),
h = rep(4, 6),
w = rep(6, 6),
info = c("78%\nmeaningless plots",
"+10K\nhours wasted",
"8/10\nzombies prefer brains",
"ALL\ndogs go to heaven",
"6\ninfoboxes",
"< 0.5\ntarget pvalue"),
color = factor(1:6)
)
ggplot(df, aes(x, y, height = h, width = w, label = info, fill = color)) +
geom_tile() +
geom_text(color = "white", fontface = "bold") +
coord_fixed() +
scale_fill_brewer(type = "qual",palette = "Dark2") +
theme_void() +
guides(fill = F)
अपने डिज़ाइन का उपयोग करके उसी व्यवस्था में डेटा फ़्रेम प्रदर्शित करने के लिए अपने समाधान का विस्तार करना, जैसा कि यह कंसोल पर प्रिंट करेगा:
डेटा फ्रेम:
mydata = data.frame(x1 = c(1,2,3,4,5),
x2 = c(9,8,7,6,5),
label = c("description a",
"description b",
"description c",
"description d",
"description e"))
के रूप में प्रदर्शित करने का इरादा है:
1 9 description a
2 8 description b
3 7 description c
4 6 description d
5 5 description e
निम्नलिखित के साथ किया:
ht = 3
wd1 = 3
wd2 = 9
gap = 0.5
nc = ncol(mydata)
nr = nrow(mydata)
x = rep(c(seq(0,(nc-2)*(wd1+gap), wd1+gap), (nc-2)*(wd1+gap) + gap + 0.5*(wd2+wd1)), nr)
y = rep(seq(0,(nr-1)*(ht+gap), ht+gap), nc) %>% sort()
h = rep(ht, nr * nc)
w = rep(c(rep(wd1, nc-1), wd2), nr)
info = as.vector(t(as.matrix(mydata[nr:1,])))
df = data.frame(x = x, y = y, h = h, w = w, info = info)
ggplot(df, aes(x, y, height = h, width = w, label = info)) +
geom_tile() +
geom_text(color = "white", fontface = "bold") +
coord_fixed() +
scale_fill_brewer(type = "qual",palette = "Dark2") +
theme_void() +
guides(fill = F)
निम्नलिखित परिणाम के साथ: परिणामी Valuebox-like प्लॉट