2016-07-21 5 views
0

これは私のcsvファイルからのデータである:私はVARXとTxの値の間distingishするライン(ポイントのみではない)をプロットしたいプロットライン

Tx, Varx, Scale, Val1, Val2 
A, VAR1, 5, 516, 2 
A, VAR1, 10, 447.4, 5 
A, VAR1, 15, 294, 8 
A, VAR1, 20, 217.2, 12 

A, VAR2, 5, 675.4, 4 
A, VAR2, 10, 423.2, 9 
A, VAR2, 15, 276, 12 
A, VAR2, 20, 200, 15 

B, VAR1, 5, 624, 6 
B, VAR1, 10, 465.2, 13 
B, VAR1, 15, 315.2, 16 
B, VAR1, 20, 234.8, 18 

B, VAR2, 5, 518.8, 8 
B, VAR2, 10, 443, 17 
B, VAR2, 15, 278.4, 20 
B, VAR2, 20, 217.8, 24 

。私は(geom_lineを用いた青色triangules、赤triangules、赤、円、青の円を、参加するためのラインをプロットしてみた場合、)

data_table = read.csv("PATH/file.csv",check.names=FALSE,header=T,sep=",") 
data_table$NScale <- as.numeric(as.character((data_table$Scale))) 
ggplot(data_table, aes(x=NScale, y=Val2, colour=Tx, shape=Varx, linetype=Varx, group=Tx)) + geom_point() 

enter image description here

geom_path():私はこのコードをプロットしようとしていますエラーメッセージが表示されます。

Error: geom_path: If you are using dotted or dashed lines, colour, size and linetype must be constant over the line 

形状と色で線分を作成する方法は?私はいくつかの方法を試しましたが、まだそれを得ていません。何が問題ですか?

答えて

1

新しい「グループ化」変数を作成し、「ポイント」と「ライン」のプロットの仕方を分けてください。

私はdplyrを使用して、ここでこれをやったが、あなたにも、ベースRを使用してそれを行うことができます:

library(dplyr) 

data_table <- data_table %>% 
    rowwise() %>% 
    mutate(TxVarxgroup = paste0(Tx, Varx, collapse="")) 

ggplot(data_table) + 
    geom_point(aes(x=NScale, y=Val2, colour=Tx, shape=Varx)) + 
    geom_line(aes(x=NScale, y=Val2, group=TxVarxgroup)) 

enter image description here

+0

おかげで多くのことを。あなたの答えはとても役に立ちました。実際には 'geom_line(aes(x = NScale、y = Val2、color = Tx、shape = Varx、linetype = Varx))'を使用しています。 –

+0

ちょうどFYIの 'geom_line'は'それは実際に何もしません:P – chappers

+0

右! 'geom_line(aes(x = NScale、y = Val2、color = Tx、linetype = Varx))'ありがとう! –

関連する問題