以下plot命令生成条形图,并且在每个条形图上方将值绘制为标签,使用gprintf格式化:
plot "data.txt" using 6:1 index 0 notitle with boxes linestyle 1,\
"data.txt" using 6:(0.7):(gprintf("%5.2f", $1)) index 0 notitle \
with labels font "Courier,34" rotate left
Run Code Online (Sandbox Code Playgroud)
我希望值标签是右对齐的,所以我可以使用更好看的Helvetica字体而不是Courier来对齐小数点.
那么,我如何在上述命令中包含理由呢?
我没有在Gnuplot文档或Web上找到有关此特定问题的任何内容.其他标签可以很容易地证明,但是在用标签绘图时也可以吗?
我有一组y值,形成一条线.另外,我有一个数组的元素数量与y数组的数量相同,范围从0到1.我们将这个数组称为'z'.我想绘制y值的数组,以便每个点的颜色对应于z值.
在gnuplot中,您可以使用'lc变量'来执行此操作:
plot ’data’ using 1:2:3 with points lc variable
Run Code Online (Sandbox Code Playgroud)
使用此处的建议:Matplotlib scatterplot; 颜色作为第三个变量的函数
,我能够使用散点图,它确实起作用:
import matplotlib as mpl
import matplotlib.pyplot as plt
plt.scatter(x, y, c=z, s=1, edgecolors='none', cmap=mpl.cm.jet)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
有没有办法用matplotlib中的plot方法做到这一点,类似于这个?
plt.plot(x, y, c=z)
Run Code Online (Sandbox Code Playgroud)
当我尝试上面的代码时,所有的行都显示为黑色.
现在我通过c中的一个管道将文件传递给gnuplot,如下所示:
fprintf(gnuplotPipe, "plot \"data-file.dat\" using 1:2\n");
Run Code Online (Sandbox Code Playgroud)
有没有办法我不必将数据写入文件,然后将其传递给gnuplot,所以例如以某种方式将数组或流传递给gnuplot,所以我可以跳过写入文件进程然后删除文件?任何帮助,将不胜感激.
1 1 A_{3}
2 2 C_{2}
3 3 ^{5}C_{1}
Run Code Online (Sandbox Code Playgroud)
我有一个这样的输入文件要绘制.第三列用于该点上的标签(以乳胶格式).如何在乳胶编译后出现这些标签(如上标/下标/希腊字母等).
我有一个非常简单的数据集:
Critical 2
High 18
Medium 5
Low 14
Run Code Online (Sandbox Code Playgroud)
在此数据集之外的gnuplot中创建条形图很简单,但所有条形图都是相同的颜色.我想拥有它,以便Critical是黑色,高是红色等,但似乎几乎没有任何在线教程这样做.
谁能指出我正确的方向?
我正在尝试使用gnuplot来绘制我的实验结果.
我写了一个C++程序,生成一个如下所示的数据文件:
10 3.5
11 3.5
12 3.5
13 3.6
Run Code Online (Sandbox Code Playgroud)
我想要做的是在x轴上显示此数据文件的第一列的值为2的幂.它看起来像那样(它不必看起来完全相同):
http://i.stack.imgur.com/8BSLr.png
所以对于我发布的数据文件,我想在x轴上有2 ^ 10,2 ^ 11等.知道怎么做吗?
如果需要,我可以更改数据文件的格式.
谢谢!
在Gnuplot中,linetypeor或lt标志允许用户选择线型(虚线,点线,实线等).
我正在使用一个名为Gnuplot-Py的Python包装器.这是一个例子:
import Gnuplot
data1 = [[3, 0.03], [4, 0.02], [5, 0.017]]
data2 = [[3, 0.027], [4, 0.015], [5, 0.014]]
gp = Gnuplot.Gnuplot(persist = 1)
gp('set terminal x11 size 350,225')
gp('set pointsize 2')
gp('set yrange [0.0:0.05]')
plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints lt rgb 'black' lw 6 pt 1", title="data1")
plot2 = Gnuplot.PlotItems.Data(data2, with_="linespoints lt rgb 'blue' lw 6 pt 8", title="data2")
gp.plot(plot2, plot1)
epsFilename='testLines.eps'
gp.hardcopy(epsFilename, terminal = 'postscript', enhanced=1, color=1) #must …Run Code Online (Sandbox Code Playgroud) gnuplot命令set datafile missing "nan"告诉gnuplot忽略nan数据文件中的数据值.
如何忽略nan和-nan?我在gnuplot中尝试了以下内容,但是第一个语句的效果被下一个覆盖了.
gnuplot> set datafile missing "-nan"
gnuplot> set datafile missing "nan"
Run Code Online (Sandbox Code Playgroud)
有可能某些人grep -v nan在gnuplot命令中嵌入一个,甚至某种正则表达式来排除任何可以想象的非数值数据吗?
我想将一些流数据传输到feedgnuplot,以便实时绘制图形
以下作品:
// index.js
readableStream.pipe(process.stdout)
// in bash
$ node index.js | feedgnuplot --stream
Run Code Online (Sandbox Code Playgroud)
但以下不起作用(这就是我想要的工作):
// index.js
var feedgnuplot = require('child_process').spawn('feedgnuplot', ['--stream'])
readableStream.pipe(feedgnuplot.stdin)
//in bash
$ node index.js
Run Code Online (Sandbox Code Playgroud)
我收到了ECONNRESET错误
编辑:请求的可读流的示例:
var util = require('util')
var Readable = require('stream').Readable
util.inherits(SomeReadableStream, Readable)
function SomeReadableStream () {
Readable.call(this)
}
SomeReadableStream.prototype._read = function () {
this.push(Math.random().toString()+'\n')
}
var someReadableStream = new SomeReadableStream()
someReadableStream.pipe(process.stdout)
Run Code Online (Sandbox Code Playgroud) 我有一个由2列组成的数据文件,其中包含名称和值.
foo 0.1
bar 0.2
fff 0.4
bbb 0.7
Run Code Online (Sandbox Code Playgroud)
我想绘制这个并注释数据点旁边的文本条目.
我试过了
plot 'file' using 1:2 with labels
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我想问题是我必须依靠gnuplot只使用y的第二列并且等距x轴.