gpt4 book ai didi

r - 使用 R 在一张图中绘制多个列表

转载 作者:行者123 更新时间:2023-12-04 09:07:13 32 4
gpt4 key购买 nike

我刚开始用R,所以请宽容...

目前,我正在尝试可视化 SAR 在 Linux 服务器上收集的一些磁盘性能数据。 CSV 数据的标题如下所示:

timestamp; DEV; tps; rd_sec/s; wr_sec/s; avgrq-sz; avgqu-sz; await, svctm; %util

DEV 代表我用来分组数据的设备名称:

disks <- split(x = dkstbl, f = dsktbl[, "DEV"])

将 RStudio 与操作库结合使用,我绘制了以下图:

manipulate(
plot(disks[disk][[1]]$tps[time],
disks[disk][[1]]$await[time],
xlim = c(0,max(disks[disk][[1]]['tps'])),
ylim = c(0,max(disks[disk][[1]]['await'])),
main = paste(disk,disks[disk][[1]]$X00.00.01[time]),
xlab = 'IOPS',
ylab = 'AWAIT'
),
time = slider(1, 1000),
disk = picker(as.list(names(disks)))
)

这几乎就是我想要的,但仍然不完全是。我想要的应该包含一个图上所有磁盘的数据,并且可能看起来像这样:

manipulate(
plot(disks[*][[1]]$tps[time],
disks[*][[1]]$await[time],
xlim = c(0,max(disks[*][[1]]['tps'])),
ylim = c(0,max(disks[*][[1]]['await'])),
main = paste(disks[*][[1]]$X00.00.01[time]),
xlab = 'IOPS',
ylab = 'AWAIT'
),
time = slider(1, 1000)
)

...其中星号 (*) 需要替换为有效的内容,以便一次绘制所有磁盘。我该如何实现?

谢谢和干杯,丹尼尔

最佳答案

首先,我看不出您首先拆分原始 data.frame 的任何原因。

其次,如果我理解正确的话,您想查看所有磁盘在一个特定时间点的观察结果,对吗?

所以我认为以下解决了您的问题:

disk <- do.call("rbind", disks)
manipulate(
plot(disk$tps[disk$Time==time],
disk$await[disk$Time==time],
xlim = c(0,max(disk$tps)),
ylim = c(0,max(disk$await)),
main = "All disks",
xlab = 'IOPS',
ylab = 'AWAIT'
),
time = picker(as.list(levels(disk$Time)))
)

一个人应该努力让事情变得简单......

关于r - 使用 R 在一张图中绘制多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846052/

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