2010-02-25 49 views
3

我已经写了一个SQL查询,告诉我前一周的十大最常见警报的名称。而且我写了一个查询,其中包含前10个闹钟,并为每个闹钟提供YTD周总计。R&ggplot2:来自动态变量的迷你图(基于查询结果)

现在我正在创建一个气泡图面板,显示每周前10位报警的年至今趋势。

我得到了类似于我想要的东西,但是现在我需要使它变得“动态”。即让它工作时不用硬编码警报的名称(因为这些将随着每周的SQL查询而改变)。

如何更改下面的R代码,使其不用硬编码警报的名称就可以开始工作?

水平(火花$报警)是否有什么关系?好心的意见:-)

Week = c(rep(1:8,2)) 
Total = rnorm(16,1000,600) 
Alarm = c(rep("BELTWEIGHER HIGH HIGH",8), rep("MICROWAVE LHS",8)) 
spark <- data.frame(Week, Alarm, Total) 

s <- ggplot(spark, aes(Week, Total)) + 
    facet_grid(Alarm ~ ., scales = "free", as.table = FALSE) + 
    opts(
    panel.background = theme_rect(size = 1, colour = "lightgray"), 
    panel.grid.major = theme_blank(), 
    panel.grid.minor = theme_blank(), 
    axis.line = theme_blank(), 
    axis.text.x = theme_blank(), 
    axis.text.y = theme_blank(), 
    axis.title.x = theme_blank(), 
    axis.title.y = theme_blank(), 
    axis.ticks = theme_blank(), 
    strip.background = theme_blank(), 
    strip.text.y = theme_text(size = 7, colour = "red", angle = 90) 
) 

s1 <- s + geom_line(subset = .(Alarm == "BELTWEIGHER HIGH HIGH")) 
s2 <- s1 + geom_line(subset = .(Alarm == "MICROWAVE LHS")) 
s2 
+0

[相关](https://stackoverflow.com/questions/35434760/sparklines-in-ggplot2/35436104)。 – Axeman 2017-09-25 09:40:26

回答

4

由于这是一个愚蠢的问题:)

这里是显而易见的答案。

Week = c(rep(1:8,2)) 
Total = rnorm(16,1000,600) 
Alarm = c(rep("BELTWEIGHER HIGH HIGH",8), rep("MICROWAVE LHS",8)) 
spark <- data.frame(Week, Alarm, Total) 


s <- ggplot(spark, aes(Week, Total)) +   
    theme(
     panel.background = element_rect(size = 1, colour = "lightgray"), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     axis.line = element_blank(), 
     axis.text.x = element_blank(), 
     axis.text.y = element_blank(), 
     axis.title.x = element_blank(), 
     axis.title.y = element_blank(), 
     axis.ticks = element_blank(), 
     strip.background = element_blank(), 
     strip.text.y = element_blank() 
     #strip.text.y = element_text(size = 7, colour = "red", angle = 90) 
    ) 

s + facet_grid(Alarm ~.) + geom_line() 
+0

不是愚蠢的,虽然很难说出你的特定应用中的“报警”是什么。唯一的区别是你使用了分面? – isomorphismes 2011-10-07 23:27:50

+0

嗨,我使用相同的代码,但我得到错误:没有图层 执行停止。想要生成火花线。非常感谢。 – henna 2012-08-03 01:45:43