我有以下数据文件:
# Throughput(op/sec) Num_tr Bytes_sent(sec)
3000 10 12000
... ... ...
其中吞吐量是客户端每秒可以执行的操作数,Num_tr是线程数,bytes_sent是每秒发送的字节数。
现在,我能够绘制线程与吞吐量的关系图,例如在x轴上获得10,在y轴上获得3000。但是,由于Bytes_sent和吞吐量严格相关,所以我还想使用y2axis
命令来显示在同一图中发送的字节。报价位置应该相同,但是y2tic的值应对应于($ 3 / $ 1)* y2tick值在(1000,2000,3000)范围内定义
set yrange [0:18000]
set ytics nomirror
set y2label 'Throughput (op/sec)'
set y2tics 5
set y2label 'Bytes_sent'
set y2range [0:18000 *($3 / $1)] <----------------
plot "data.dat" index 0 using 2:1:xtic(2) ...
有什么主意吗?
预先感谢
答案 0 :(得分:0)
您有两种选择
(1)您可以使用“ set link”命令将y2链接到y1,并提供与发送的字节数和吞吐量相关的方程式
push ds
push es
mov ax, 0xb800
mov ds, ax
mov es, ax
xor si, si
mov di, 80
mov cx, 25
L0: push cx
mov cx, 40
L1: mov ax, [di]
movsw
mov [si-2], ax
loop L1
xchg si, di
add di, 160
pop cx
loop L0
pop es
pop ds
我不知道您对“ xtics(1)”的意图是什么,但是由于第1列用于y值而不是x值,因此它是不正确的。
(2)您可以独立绘制它们
total_time = <you know this, I take it?>
throughput(bytes_sent) = bytes_sent / total_time
bytes(throughput) = throughput * total_time
set link y2 via throughput(y) inverse bytes(y)
set ytics 5 nomirror
set y2tics nomirror # range will exactly track y1
plot "data.dat" index 0 using 2:1
在这种情况下,您不需要链接轴或显式设置范围。该图将有两条线,但是如果相关关系是完美的,它们将会叠加。