簡體   English   中英

使用R ggplot2的簡單線條圖

[英]Simple line plot using R ggplot2

我有.csv格式的以下數據,因為我是ggplot2圖的新手,我無法執行此操作

T           L
141.5453333 1
148.7116667 1
154.7373333 1
228.2396667 1
148.4423333 1
131.3893333 1
139.2673333 1
140.5556667 2
143.719     2
214.3326667 2
134.4513333 3
169.309     8
161.1313333 4

我試圖使用以下圖形繪制折線圖

data<-read.csv("sample.csv",head=TRUE,sep=",")

ggplot(data,aes(T,L))+geom_line()]

但是我得到了下面的圖像,這不是我想要的

在此處輸入圖片說明

我想要以下圖像

在此處輸入圖片說明

有誰能夠幫助我?

您想為x軸使用一個變量,該變量具有很多重復的值,並且希望軟件猜測您要繪制這些點的順序是由它們在數據集中顯示的順序給出的。 這也意味着x軸的變量值不再對應於您正在繪制的坐標系中的實際坐標,即,您希望將值“ L = 1”映射到x上的不同位置-軸,取決於它在數據中的顯示位置。

這種類型的非常荒謬的事情在ggplot2ggplot2 您必須定義一個單獨的變量,該變量必須與x軸上的值正確映射(以下代碼中的“ id”),然后用“ L”的值覆蓋標簽。

下面的coe向您展示了如何執行此操作,但似乎不同的圖形顯示可能更適合此類數據。

data <- as.data.frame(matrix(scan(text="
141.5453333 1
148.7116667 1
154.7373333 1
228.2396667 1
148.4423333 1
131.3893333 1
139.2673333 1
140.5556667 2
143.719     2
214.3326667 2
134.4513333 3
169.309     8
161.1313333 4
"), ncol=2, byrow=TRUE))
names(data) <- c("T", "L")
data$id <- 1:nrow(data)
ggplot(data,aes(x=id, y=T))+geom_line() + xlab("L") +
    scale_x_continuous(breaks=data$id, labels=data$L)

在此處輸入圖片說明

您的代碼中有錯誤,請嘗試以下操作:

ggplot(data,aes(x=L, y=T))+geom_line()

aes默認參數為:

aes(x, y, ...)

暫無
暫無

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

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