使用R ggplot2的简单线图

时间:2014-03-26 08:14:01

标签: 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()]

但我得到了以下图片,这不是我想要的

enter image description here

我想要如下图像

enter image description here

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

您希望将x变量用于具有大量重复值的变量,并期望软件猜测您希望绘制这些点的顺序是由它们在数据集中出现的顺序给出的。这也意味着x轴变量的值不再对应于您正在绘制的坐标系中的实际坐标,即,您想要映射&#34; L = 1&#34的值; x轴上的不同位置取决于它在数据中的显示位置。

这种相当不感性的东西在开箱即用的ggplot2中不起作用。您必须定义一个单独的变量,该变量具有到x轴上的值的正确映射(&#34; id&#34;在下面的代码中),然后使用&#34; L&#34;的值覆盖标签。

下面的系列显示了如何执行此操作,但似乎不同的图形显示可能更适合此类数据。

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)

enter image description here

答案 1 :(得分:0)

您的代码中有错误,请尝试以下操作:

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

aes的默认参数是:

aes(x, y, ...)