设置多个图的默认选项

时间:2017-10-23 18:44:46

标签: r ggplot2

我有一个大型数据集,我有多个图。我知道建议使用facet,但我的观众更喜欢同一绘图区域中的多个范围。我在同一个图中有多达7个不同的变量/范围 - 由下面的代码片段中的type表示。

我有一些参数在所有图中保持不变(在初始ggplot语句ggplot(dat, aes(x = loc_time, y = <variable_name>)之后:

geom_point(aes(shape = type, color = type, fill = type)) + 
  scale_shape_manual(values = c(21,22,23,25,15,17,16)) + 
  scale_fill_manual(values = c('#e41a1c','#377eb8','#4daf4a','#984ea3', '#ff7f00','#a65628','#f781bf','black')) + 
  scale_color_manual(values = c('#e41a1c','#377eb8','#4daf4a','#984ea3', '#ff7f00','#a65628','#f781bf','black')) +
  scale_size_manual(values = c(1,2,2,1,2,2,1)) + 
  geom_line(aes(color = type))
  xlab("Local Time")

我可以复制粘贴此信息。所有的情节陈述,但想知道是否有办法宣布这一次。

我发现这篇文章Reset the graphical parameters back to default values without use of dev.off(),但它并没有完全回答我的问题。

1 个答案:

答案 0 :(得分:2)

您可以这样做:

定义你的功能:

<console>:143: error: overloaded method value filter with alternatives:
  (func: org.apache.spark.api.java.function.FilterFunction[org.apache.spark.sql.Row])org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
  (func: org.apache.spark.sql.Row => Boolean)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
  (conditionExpr: String)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
  (condition: org.apache.spark.sql.Column)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
 cannot be applied to (Boolean)
       inputDF.filter(inputDF("connState") == "BALANCED").show()

然后应用它:

format_cust <- function(.x) {
    .x + 
        geom_point(aes(shape = type, color = type, fill = type)) + 
        scale_shape_manual(values = c(21,22,23,25,15,17,16)) + 
        scale_fill_manual(values = c('#e41a1c','#377eb8','#4daf4a','#984ea3', '#ff7f00','#a65628','#f781bf','black')) + 
        scale_color_manual(values = c('#e41a1c','#377eb8','#4daf4a','#984ea3', '#ff7f00','#a65628','#f781bf','black')) +
        scale_size_manual(values = c(1,2,2,1,2,2,1)) + 
        geom_line(aes(color = type)) + 
        xlab("Local Time")
    }