gpt4 book ai didi

r - R 语言中的 plot 函数不考虑绘图类型

转载 作者:行者123 更新时间:2023-12-04 07:43:25 24 4
gpt4 key购买 nike

我有以下 R 脚本:

X <- read.table("/tmp/run178/data/monitor/portal_free_heap_monitor.log", header=T, sep=";")

P1 <- subset(X, Server=="PortalServer1")
P2 <- subset(X, Server=="PortalServer2")

png("mygraph.png")
plot(P1$Time, P1$HeapFreePercent, type="l", col="red")
lines(P2$Time, P2$HeapFreePercent, col="green")
q()

在结果中,“PortalServer1”的 PNG 图像数据用点和黑色绘制,但它应该用红线绘制。另一个是用绿线按预期绘制的。我究竟做错了什么?

编辑 : 这是X的结构:
> str(X)
'data.frame': 5274 obs. of 3 variables:
$ Time : Factor w/ 2654 levels "2011.08.24 14:39:29",..: 1 1 2 2 3 3 4 4 5 5 ...
$ Server : Factor w/ 2 levels "PortalServer1",..: 1 2 1 2 1 2 1 2 1 2 ...
$ HeapFreePercent: int 42 49 41 49 41 49 41 49 41 49 ...

最佳答案

@GavinSimpson 已经评论过如何解决您的问题。这应该是一个评论,但太长了。我只是用原始形式的数据解释你的情节发生了什么。

您正在绘制 factor 类型的数据.因此,当您调用函数 plot 时,S3 方法调度将调用 plot.factor .

如果您阅读了 ?plot.factor 的帮助信息您会注意到,您获得的绘图类型还取决于您的第二个参数的类型。由于这也是一个因素,最终你的情节是由 spineplot 绘制的。 .因此您的 type="l"基本上被忽略了。颜色以红色绘制,但......

逆向工程你的数据,我得到这样的东西:

X <- data.frame(
Time = sort(sample(letters, 100, replace=TRUE)),
Server = sample(c("PortalServer1", "PortalServer2"), 100, replace=TRUE),
HeapFreePercent = runif(100))
str(X)

P1 <- subset(X, Server=="PortalServer1")
P2 <- subset(X, Server=="PortalServer2")

plot(P1$Time, P1$HeapFreePercent, type="l", col="red")
lines(P2$Time, P2$HeapFreePercent, col="green")

enter image description here

关于r - R 语言中的 plot 函数不考虑绘图类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com