Почему так сложно? Вот как я это делаю ...
Swift 4:
var iPad : Bool {
return UIDevice.current.model.contains("iPad")
}
Таким образом вы можете просто сказать if iPad {}
В соответствии с запросом решение ggplot2, которое также использует reshape2:
library(reshape2)
df <- read.table(text = " Input Rtime Rcost Rsolutions Btime Bcost
1 12-proc. 1 36 614425 40 36
2 15-proc. 1 51 534037 50 51
3 18-proc 5 62 1843820 66 66
4 20-proc 4 68 1645581 104400 73
5 20-proc(l) 4 64 1658509 14400 65
6 21-proc 10 78 3923623 453600 82",header = TRUE,sep = "")
dfm <- melt(df[,c('Input','Rtime','Btime')],id.vars = 1)
ggplot(dfm,aes(x = Input,y = value)) +
geom_bar(aes(fill = variable),stat = "identity",position = "dodge") +
scale_y_log10()
[/g0]
Обратите внимание на разницу стилей здесь, где с log(1) = 0
, ggplot2 рассматривает это как полосу нулевой высоты и ничего не рисует, тогда как barplot
отображает небольшую заглушку (что, на мой взгляд, мало вводит в заблуждение).
Я думаю, что понимаю проблему, и это то, что я хотел бы предложить (короткий пробег - опция):
data <- read.table("data.txt", header=TRUE)
subset <- t(data.frame(data$Rtime, data$Btime))
barplot(subset, legend = c("Rtime", "Btime"), names.arg=data$Input, log="y", beside=TRUE)
Это то, что вы хотите? Это своего рода грязный, но он выполняет эту работу.
Обновление: исправлен код.
Ответ joran мне очень помог, но мне пришлось использовать stat = "identity" в инструкции ggplot:
ggplot(dfm, aes(x = Input,y = value)) +
geom_bar(aes(fill = variable), position = "dodge", stat="identity") +
scale_y_log10()
Моя версия R равна 3.2 .2 и ggplot2 version 1.0.1
Спасибо.
melt
находится в пакетеreshape2
– Serenthia 8 July 2016 в 15:36stat = "identity"
вgeom_bar
, поскольку он по умолчанию имеет значениеstat = "bin"
– Serenthia 8 July 2016 в 15:39