gnuplot:为相同的 x 值绘制多个 y 值的范围
gnuplot : Plotting range of multiple y values for same x value
我的数据文件有多个 y 值对应一个 x 值。我需要绘制所有 x 值的最大和最小 y 值。 gnuplot
中有这样的命令吗?
例:数据文件
x y
1 10
2 6
1 14
1 12
2 25
2 14
我想要一个图,其中 x 轴上的 1 绘制了 10 和 14,y 轴上的 2 绘制了 6 和 25。
我找到了统计信息,但它找到了整个数据集的最小值和最大值,但没有找到单个 x 值。
有 Candlesticks 选项,但它适用于不同的数据集
Gnuplot 旨在快速绘制预处理数据。
然而,在 Linux 下,您可以利用许多现成的工具来操作您的数据。
如果您的数据集不是很大,您可以选择使用 gnuplot
中的 inline 中的一些。
sort
可以是其中之一(以及 awk
),在这里您阅读了 4 倍的文件。
plot "<sort data.dat -k2 -n | sort -n -k1 -u" t "Min" \
,"<sort data.dat -k2 -n -r| sort -n -k1 -u" t "Max"
有了 awk
,您可以做得更好,只扫描一次您的文件
set xlabel "My x axis [a.u.]"
set ylabel "My y axis [a.u.]"
set style fill transparent solid 0.4
plot "< awk '{ Q[]++; \
if (Q[]==1){ Min[]=;Max[]=; } \
else \
{ if (Min[]>) {Min[]=;} \
else {if (Max[]<) Max[]=;} } \
} \
END {for (i in Min) print i,Min[i],Max[i]}' data.dat " \
using ():():() w filledcurve title "Min and Max" lc rgb "#00A000"
备注:
- 为了简单起见,我清除了文件的第一行
plot "< command "
它执行命令并将其用作输入数据
man sort
和 man awk
获得 sort
和 awk
程序的全面帮助
- 检查 associative arrays in awk 以更深入地了解
awk
。
我的数据文件有多个 y 值对应一个 x 值。我需要绘制所有 x 值的最大和最小 y 值。 gnuplot
中有这样的命令吗?
例:数据文件
x y
1 10
2 6
1 14
1 12
2 25
2 14
我想要一个图,其中 x 轴上的 1 绘制了 10 和 14,y 轴上的 2 绘制了 6 和 25。
我找到了统计信息,但它找到了整个数据集的最小值和最大值,但没有找到单个 x 值。
有 Candlesticks 选项,但它适用于不同的数据集
Gnuplot 旨在快速绘制预处理数据。
然而,在 Linux 下,您可以利用许多现成的工具来操作您的数据。
如果您的数据集不是很大,您可以选择使用 gnuplot
中的 inline 中的一些。
sort
可以是其中之一(以及 awk
),在这里您阅读了 4 倍的文件。
plot "<sort data.dat -k2 -n | sort -n -k1 -u" t "Min" \
,"<sort data.dat -k2 -n -r| sort -n -k1 -u" t "Max"
有了 awk
,您可以做得更好,只扫描一次您的文件
set xlabel "My x axis [a.u.]"
set ylabel "My y axis [a.u.]"
set style fill transparent solid 0.4
plot "< awk '{ Q[]++; \
if (Q[]==1){ Min[]=;Max[]=; } \
else \
{ if (Min[]>) {Min[]=;} \
else {if (Max[]<) Max[]=;} } \
} \
END {for (i in Min) print i,Min[i],Max[i]}' data.dat " \
using ():():() w filledcurve title "Min and Max" lc rgb "#00A000"
备注:
- 为了简单起见,我清除了文件的第一行
plot "< command "
它执行命令并将其用作输入数据man sort
和man awk
获得sort
和awk
程序的全面帮助- 检查 associative arrays in awk 以更深入地了解
awk
。