R中的简单图

时间:2019-04-17 16:59:57

标签: r ggplot2

我是R新手。

我已经能够将无标题的数据放入列中

my_data<- separate(my_data,col = "V1",into = c("Date", "Tool","Dept","Port","Host","Min","Max"),sep = ":")

它看起来像这样:

          Date   Tool         Dept  Port     Host Min Max
1: 03-Mar-2019 toolset Headquaters  1234 host.com   1   7
2: 10-Mar-2019 toolset Headquaters  1234 host.com   0   7
3: 17-Mar-2019 toolset Headquaters  1234 host.com   1   7

我将其绘制:

> p1 <- ggplot() + geom_line(aes(y = Max, x = Date),data = My_data)
> p1

但是我得到的只是这个:

enter image description here

如何绘制时间上的最小值/最大值?

EDIT1: 这些是日期,而不是因素或其他内容

EDIT2: 我尝试了这个建议:

my_data$Date <- as.Date(lmt$Date, "%d-%b-%Y")

并得到 newest

2 个答案:

答案 0 :(得分:1)

目前,您的日期时间结构可能存在问题。 您可以运行bin/mallet train-classifier --input training.in --cross-validation 10来查看日期的格式。日期格式很多,但是POSIXct是最好的imo。如果日期是一个因素或其他因素,请通过str(my_data)

将其转换为字符

转换后,您可以使用as.character()转换日期时间。正确格式化日期后,您可以运行ggplot:
strptime(my_data$Date, %d-%b-%Y)

我在下面的教程中提供了完整的详细信息,以在需要时为您提供帮助。日期可能有点棘手,尤其是当您必须在p1 <- ggplot(my_data, aes(x = Date, y = Max)) + geom_line() ex(%M或%d)中指定format参数时。网站上有一张列出所有可能格式的图表。

https://jackylam.io/tutorial/uber-data/

答案 1 :(得分:1)

这是您的基本情节:

My_data<-read.table(header=TRUE,, text="Date   Tool         Dept  Port     Host Min Max
03-Mar-2019 toolset Headquaters  1234 host.com   1   7
10-Mar-2019 toolset Headquaters  1234 host.com   0   7
17-Mar-2019 toolset Headquaters  1234 host.com   1   7")

My_data$Date <- as.Date(My_data$Date, "%d-%b-%Y")

library(ggplot2)
p1 <- ggplot(data=My_data, aes(x=Date)) + 
  geom_line(aes(y = Max), col="blue") +
  geom_line(aes(y = Min), col="green")
print(p1)

enter image description here