Math gnuplot:仅在自然x值上绘制点

Math gnuplot:仅在自然x值上绘制点,math,gnuplot,Math,Gnuplot,我使用的是这个最小样本: set xrange [0:10] plot x**2 这将生成一个非常平滑的图形。但是,我希望在x(0,1,2,…,10)的自然值上只绘制点,使图表“刚性”,类似于: 是否有可能在没有数据文件的情况下执行此操作 但是,我知道,如果我要使用它,我需要在每次更改xrange时调整样本分辨率。如果需要点,可以使用伪文件“+”。它就像一个文件,在一列中包含一系列数字。您必须设置xrange。点数由设置样本决定: set xrange[-5:5] set samples 1

我使用的是这个最小样本:

set xrange [0:10]
plot x**2
这将生成一个非常平滑的图形。但是,我希望在x(0,1,2,…,10)的自然值上只绘制点,使图表“刚性”,类似于:

是否有可能在没有数据文件的情况下执行此操作


但是,我知道,如果我要使用它,我需要在每次更改xrange时调整样本分辨率。

如果需要点,可以使用伪文件
“+”
。它就像一个文件,在一列中包含一系列数字。您必须设置xrange。点数由设置样本决定:

set xrange[-5:5]
set samples 11 # need 11 points: 0, 1, 2, ..., 10
plot "+" u 1:($1**2) with linespoints

编辑:

首先,这是真的:您不必仅为
行点
使用
'+'

好的,这是怎么回事:

plot '+' u (floor($1)):(floor($1)**2) smooth unique w lp
它仍然使用伪文件
“+”
,将其值向下舍入到下一个整数。作为日志ans,您可以确保
sample
点数足够高,每个整数之间总是生成一个数字(比如说两倍于完整的Y范围),它可以工作。
平滑唯一
可防止在同一坐标上出现多个点。

使用shell 您可以通过管道传递shell命令(而不是文件)来获得所需的点:


plot”我已经提到了
set samples
(参见底部的链接),以及我不想使用它的原因。这与最后一行带有linespoints的
plot x**2的效果完全相同,+文件在这里没有用处。这很好用,谢谢!对于未来的访问者,您可以添加一个关于如何构建此命令的解释,或者对文档的引用吗?:)恐怕我想找一个更复杂的wa对这一点,有条件等等,这就引出了一个问题:,它使用shell调用,但没有引用嗯,好吧。顺便问一下,你知道这在windows上是否也有效吗?它在我的windows上运行良好,但我已经安装了MinGW和Cygwin。如果没有,应该在答案中添加一个小注释。哈,它在我的windows上不起作用,我不得不这样做在linux上测试它。我会编辑,详细说明我能做的。谢谢!我会等一等,看看其他人是否提出了其他解决方案,然后可能会接受你的答案!
gnuplot> plot "<echo 0 1 2 3 4 5 6 7 8 9 10" using 1:($1**2) w lp  \
         # fails, implying the < syntax doesn't even exist
     warning: Skipping unreadable file "<echo 0 1 2 3 4 5 6 7 8 9 10"
     No data in plot

gnuplot> plot system("echo 0 1 2 3 4 5 6 7 8 9 10") using 1:($1**2) w lp \
         # fails with proper warning, then tries to reuse previous file
     warning: system() requires support for pipes
     warning: Skipping unreadable file "<echo 0 1 2 3 4 5 6 7 8 9 10" 
     No data in plot

gnuplot> !pause # shows a windows batch window