繁体   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