2017-04-04 8 views
0

私の目標は、データに基づいてggplotのgeom_lineの線幅を拡大することです。私は多くの関連記事を読みましたが、私の目標を達成するためにまだ苦労しています。関連記事は以下のとおりです。Different size for lines in ggplot2's geom_lineデータを基にしたggplotとgeom_lineの美しさを使った線の幅の変更

はここに私のコードです:私はFreqがその例では初期化されている場所について困惑しているものの

この投稿は、私の質問に非常に近いです。私はその後、私のgeom_lineで使用することを、私は新しい変数を初期化するためのmutate使っていることに注意してください、LINE_SIZE:

suppressWarnings(suppressMessages(library(dplyr))) 
    library(ggplot2) 
    exps <- mutate(exps, line_size = ifelse(var1 == 'foo', 2, 1)) 
    # (this is in a function, so I'm using aes_string to interpret ind_var_arg, which is a function argument) 
    ggplot(exps, aes_string(x="ind_var_arg", y=dep_var)) + 
    geom_line(aes(size=line_size, linetype=major_version, 
     color=config), alpha=alpha_level) 

だから、私は "いくつかの特定の行(VAR1と一致するもの==を作成しようとしていますfoo ')の厚さは2、残りは厚さ1です。データに基づいてサイズを変えたいので、geom_lineにaesを使用しています。結果として得られる画像は私が期待しているものではありません。太い線は大量で、他の線はデフォルトより太いです。 line_sizeの値を0.1と0.05のような小さな値に変更すると、線の太さは変わりません。私はプロットしているデータフレームの内容をチェックし(exps)、line_sizeは期待どおりに初期化されます(NAsのないdouble型の行)。

明らかに私はここでline_sizeを正しく使用していません。私は間違って何をしていますか?私は、特定の行の行サイズとして明示的にline_sizeの内容を使用したいと思います。

glimpse(exps) 

    $ dep_var       <int> 1000000, 1000000, 1000000, 1000000... 
    $ config       <chr> "config1", "config1", "config2", ... 
    $ ind_var_arg      <dbl> 5198283352, 420183942, 125450482, ... 
    $ var1        <chr> "bar", "foo", "bar", "bar", "bar",... 
    $ major_version     <chr> "ONE", "TWO", "ONE", "ONE", "ONE",... 
    $ line_size      <dbl> 0.005, 20.000, 0.005, 0.005, 0.005...   
+0

はあなたに –

+0

を助けることができるいくつかのデータまたは誰を表示するいくつかのデータを掲載 – Kulluk007

+0

ここに答えが何をしたいあなたを得るでしょうか? http://stackoverflow.com/questions/17996410/ggplot-specific-thick-line –

答えて

1

あなたはline_size_discrete()を使用したい:

enter image description here

は、ここで私はプロットだデータフレームの構造です。 line_sizeカラムの作成をスキップして、すでに持っているものに基づいてグラフィックを作成することができます。

library(tidyverse) 
exps %>% 
    ggplot(aes(ind_var_arg, dep_var) + 
      geom_line(aes(size=var1, line_type=major_version, color=config)) + 
      scale_size_discrete(range = c(1, 2)) 
+0

ありがとう、Bウィリアムズ - これは私のために働いて、私は期待された結果を得ています。私自身の理解のために、私が以前に得ていた振る舞いで実際に何が起こったのですか?私が供給していたサイズの値は直接使用されていませんでしたが、プリセットサイズの配列にマップされました(線種の仕組みのようなもの)? – Kulluk007

+1

あなたはサイズを変えたいと言っていましたが、どのように変化させるべきかを実際には定義していません –

関連する問題