簡體   English   中英

繪制線以分組點

[英]Plot lines to group points

這是我的csv文件中的數據:

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

我想繪制線(不僅是點)以區分Varx和Tx值。 我正在嘗試使用以下代碼進行繪制:

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()

在此處輸入圖片說明

當我嘗試使用geom_line(),geom_path()繪制用於連接藍色三角形,紅色三角形,紅色圓圈,藍色圓圈的線時,顯示錯誤消息:

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

如何創建按形狀和顏色分組的線條? 我已經嘗試了幾種方法,但是仍然不明白。 問題是什么?

您應該嘗試創建一個新的“分組”變量,並分開處理“點”和“線”的圖。

我在這里使用dplyr進行了此dplyr但您也可以使用base 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))

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM