我一直在想这个问题,它可能已经实现gnuplot但我无法在线查找信息.
当你有一个数据文件时,可以交换轴并将"虚拟变量",比如x,(在gnuplot的帮助术语中)分配给垂直轴:
plot "data" u 1:2 # x goes to horizontal axis, standard
plot "data" u 2:1 # x goes to vertical axis, exchanged axes
Run Code Online (Sandbox Code Playgroud)
但是,当您有一个函数时,您需要求助于参数函数来执行此操作.想象一下你想要绘制x =y²(与y =x²相反),然后(据我所知)你需要做:
set parametric
plot t**2,t
Run Code Online (Sandbox Code Playgroud)

在这种情况下很好用.然而,我认为一种更灵活的方法是可取的,例如
plot x**2 axes y1x1 # this doesn't work!
Run Code Online (Sandbox Code Playgroud)
是上面实现的,还是有一种简单的方法可以使用y作为虚拟变量而不需要set parametric?
所以这是另一个丑陋但仅限 gnuplot 的变体:使用特殊文件名'+'生成用于绘图的动态数据集:
plot '+' using ($1**2):1
Run Code Online (Sandbox Code Playgroud)
开发版本包含一个新功能,它允许您使用虚拟变量而不是列号进行绘图'+':
plot sample [y=-10:10] '+' using (y**2):(y)
Run Code Online (Sandbox Code Playgroud)
我想这最接近您的要求。