在Gnuplot中标记函数的根

时间:2016-03-15 10:44:22

标签: gnuplot

我对Gnuplot完全不熟悉,我想要做的就是(以某种方式)标记我的简单函数的所有根。我知道我可以改变我的线条样式等,但是如何只为y = 0的这些点做这个?是否可以通过条件绘图解决问题?

我没有使用任何.dat文件,只有一个简单的命令,如

set xzeroaxis
plot x*x*x - x - 2

如果无法在地块上标记这些点,可能还有其他方式列出它们吗?把这些值写在某个地块上的某个地方?我很感激每一个答案。

1 个答案:

答案 0 :(得分:1)

它可以做但但不是很好。有关代码的说明,请参阅this answer

set xrange [-2:2]
set table "temp"
plot "+" u (x=$1, y=x*x*x - x - 2, x):(y) not
unset table

xcolumn=1
ycolumn=2

plot 0 not, "< grep -v u temp" w l not, "" u (column(0)==0 ? \
(last2y=column(ycolumn), \
last2x=column(xcolumn), 1/0) : column(0)==1 ? (lasty=column(ycolumn), \
lastx=column(xcolumn), 1/0) : last2x+(lastx-last2x)/(lasty-last2y)*(-last2y)): \
( sgn(last2y) != sgn(lasty) ? (value=0., last2y=lasty, last2x=lastx, \
lasty=column(ycolumn), lastx=column(xcolumn), value) : (last2y=lasty, \
last2x=lastx, lasty=column(ycolumn), lastx=column(xcolumn), 1/0) ) pt 7 not

enter image description here