Javascript Gnuplot画布:缩放时tics消失
我已经在一个与我的工作相关的web界面上工作了一段时间。我有一些数据可以迭代地与模型匹配。在每次迭代中,我都会创建一个在线的Gnuplot图来帮助我跟踪这个过程。它工作得很好,但是,我有一些与画布终端相关的小问题,我很长一段时间都无法修复。我使用Gnuplot 4.6.5和一些浏览器。他们行为一致 以下是此类页面的一个示例,带有两个图: 我对x轴的抖动和分辨率有一番挣扎,我认为这些问题可能与此有关: 1-图下方的x轴坐标不显示小数。我认为x坐标被Gnuplot截断了 当我们放大时,2轴抽搐消失 3-我有一些标签定义为:“将标签设置为x,屏幕0.2'…一些标签…” 这些标签在放大时消失,即使它们设置为屏幕y坐标(0.2) 4-当鼠标移到图2并再次移回1时,缩放在图1中重置。这可能是一个html/java问题 生成这些图形的Gnuplot脚本如下所示:Javascript Gnuplot画布:缩放时tics消失,javascript,html,canvas,gnuplot,Javascript,Html,Canvas,Gnuplot,我已经在一个与我的工作相关的web界面上工作了一段时间。我有一些数据可以迭代地与模型匹配。在每次迭代中,我都会创建一个在线的Gnuplot图来帮助我跟踪这个过程。它工作得很好,但是,我有一些与画布终端相关的小问题,我很长一段时间都无法修复。我使用Gnuplot 4.6.5和一些浏览器。他们行为一致 以下是此类页面的一个示例,带有两个图: 我对x轴的抖动和分辨率有一番挣扎,我认为这些问题可能与此有关: 1-图下方的x轴坐标不显示小数。我认为x坐标被Gnuplot截断了 当我们放大时,2轴抽搐消失
set encoding iso_8859_1
set terminal canvas solid butt size 1024,410 name figure1 mousing lw 0.7
set output "figure1.js"
set samples 50, 50
set size ratio 0.4
set xtics autofreq 200
set mxtics 4
set xr [4000:5000]
set ylab "Relative flux"
set xlab "Wavelength (\305)"
set format y "%1.1e"
load 'lines.gnp' # just a bunch of labels
plot " ... some file ... "
function ALue310128bfCsdd_dat_7_0()
{
canvas = document.getElementById("ALue310128bfCsdd_dat_7_0");
ctx = canvas.getContext("2d");
// Reinitialize mouse tracking and zoom for this particular plot
if ((typeof(gnuplot.active_plot) == "undefined" || gnuplot.active_plot != ALue310128bfCsdd_dat_7_0) && typeof(gnuplot.mouse_update) != "undefined")
{
gnuplot.active_plot_name = "ALue310128bfCsdd_dat_7_0";
gnuplot.active_plot = ALue310128bfCsdd_dat_7_0;
canvas.onmousemove = gnuplot.mouse_update;
canvas.onmouseup = gnuplot.zoom_in;
canvas.onmousedown = gnuplot.saveclick;
canvas.onkeypress = gnuplot.do_hotkey;
if (canvas.attachEvent) {canvas.attachEvent('mouseover', ALue310128bfCsdd_dat_7_0);
}
else if (canvas.addEventListener)
{canvas.addEventListener('mouseover', ALue310128bfCsdd_dat_7_0, false);}
gnuplot.zoomed = false;
gnuplot.zoom_axis_width = 0;
gnuplot.zoom_in_progress = false;
gnuplot.polar_mode = false;
ctx.clearRect(0,0,1280,513);
}
我想知道这些不便是否有一个通用的解决办法
问题4:
Gnuplot生成的javascript如下所示:
set encoding iso_8859_1
set terminal canvas solid butt size 1024,410 name figure1 mousing lw 0.7
set output "figure1.js"
set samples 50, 50
set size ratio 0.4
set xtics autofreq 200
set mxtics 4
set xr [4000:5000]
set ylab "Relative flux"
set xlab "Wavelength (\305)"
set format y "%1.1e"
load 'lines.gnp' # just a bunch of labels
plot " ... some file ... "
function ALue310128bfCsdd_dat_7_0()
{
canvas = document.getElementById("ALue310128bfCsdd_dat_7_0");
ctx = canvas.getContext("2d");
// Reinitialize mouse tracking and zoom for this particular plot
if ((typeof(gnuplot.active_plot) == "undefined" || gnuplot.active_plot != ALue310128bfCsdd_dat_7_0) && typeof(gnuplot.mouse_update) != "undefined")
{
gnuplot.active_plot_name = "ALue310128bfCsdd_dat_7_0";
gnuplot.active_plot = ALue310128bfCsdd_dat_7_0;
canvas.onmousemove = gnuplot.mouse_update;
canvas.onmouseup = gnuplot.zoom_in;
canvas.onmousedown = gnuplot.saveclick;
canvas.onkeypress = gnuplot.do_hotkey;
if (canvas.attachEvent) {canvas.attachEvent('mouseover', ALue310128bfCsdd_dat_7_0);
}
else if (canvas.addEventListener)
{canvas.addEventListener('mouseover', ALue310128bfCsdd_dat_7_0, false);}
gnuplot.zoomed = false;
gnuplot.zoom_axis_width = 0;
gnuplot.zoom_in_progress = false;
gnuplot.polar_mode = false;
ctx.clearRect(0,0,1280,513);
}
gnuplot.zoomed
和gnuplot.zoom\u in\u progress
变量似乎与缩放级别的重新初始化有关
wxt
这些鼠标坐标的格式可与set mouse format
相适应。这不适用于画布
终端,可能是一个buggnuplot
创建图像后,轴tic仅成为直线,即缩放时不会重新生成轴tic。试着放大一个tic:它会变得非常大屏幕
坐标仅在gnuplot中识别。写入文件后,只有绝对坐标。如果标签坐标落入缩放区域,则绘制相应的标签,否则不绘制