Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用html5画布和纯javascript绘制散点图没有对数轴的库_Javascript_Html_Canvas_Plot_Scatter - Fatal编程技术网

使用html5画布和纯javascript绘制散点图没有对数轴的库

使用html5画布和纯javascript绘制散点图没有对数轴的库,javascript,html,canvas,plot,scatter,Javascript,Html,Canvas,Plot,Scatter,我发布我的问题是因为我在任何地方都找不到信息,大多数教程都需要使用奇特的库,我只是不想从包含以下数据示例的两个json多维数组中绘制html5画布散点图: { 'dataset1' [ { "p0" : "0.69", "log(p0)" : "14", "p0_name" : "cn95" }, ] 对于另一个轴 { "p1" : "0.69", "log(p1)" : "14", "p1_name" : "dn95" }, 我尝试重新创建的示例类似于 我遇到的最大问题是让画布使用对数

我发布我的问题是因为我在任何地方都找不到信息,大多数教程都需要使用奇特的库,我只是不想从包含以下数据示例的两个json多维数组中绘制html5画布散点图:

{ 'dataset1' [ { "p0" : "0.69", "log(p0)" : "14", "p0_name" : "cn95" }, ]
对于另一个轴

 { "p1" : "0.69", "log(p1)" : "14", "p1_name" : "dn95" }, 
我尝试重新创建的示例类似于

我遇到的最大问题是让画布使用对数刻度。您可以从示例链接中看到从数据中查看某些内容所需的链接。一把小提琴将是伟大的发挥和创造我自己的!这就是我到目前为止所做的:


这是我使用的数据,画布不能使用开箱即用的对数比例,你必须为你的点提供一个函数来自己缩放它们

我建议采用以下程序:

  • 具有取一个轴及其最大值的函数
  • 在函数内部进行规范化
  • 然后对值应用对数函数并返回
  • 使用画布宽度/高度的规格化值来绘制点
使用相同的函数绘制图形容器以及点/线等

例如,使用“pseudo”(无特殊用途)日志函数:

var ctx=canvas.getContext('2d'),
w=画布宽度,
h=canvas.height-10,//为点/文本留出空间
最大高度=1000,
Axistep=100;
函数myLog(v,最大值){
var n=v/max;//规范化
返回n*n*n;//一些日志公式
}
//按轴步长绘制比例
对于(变量i=0;i

Canvas无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们

我建议采用以下程序:

  • 具有取一个轴及其最大值的函数
  • 在函数内部进行规范化
  • 然后对值应用对数函数并返回
  • 使用画布宽度/高度的规格化值来绘制点
使用相同的函数绘制图形容器以及点/线等

例如,使用“pseudo”(无特殊用途)日志函数:

var ctx=canvas.getContext('2d'),
w=画布宽度,
h=canvas.height-10,//为点/文本留出空间
最大高度=1000,
Axistep=100;
函数myLog(v,最大值){
var n=v/max;//规范化
返回n*n*n;//一些日志公式
}
//按轴步长绘制比例
对于(变量i=0;i

Canvas无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们

我建议采用以下程序:

  • 具有取一个轴及其最大值的函数
  • 在函数内部进行规范化
  • 然后对值应用对数函数并返回
  • 使用画布宽度/高度的规格化值来绘制点
使用相同的函数绘制图形容器以及点/线等

例如,使用“pseudo”(无特殊用途)日志函数:

var ctx=canvas.getContext('2d'),
w=画布宽度,
h=canvas.height-10,//为点/文本留出空间
最大高度=1000,
Axistep=100;
函数myLog(v,最大值){
var n=v/max;//规范化
返回n*n*n;//一些日志公式
}
//按轴步长绘制比例
对于(变量i=0;i

Canvas无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们

我建议采用以下程序:

  • 具有取一个轴及其最大值的函数
  • 在函数内部进行规范化
  • 然后对值应用对数函数并返回
  • 使用画布宽度/高度的规格化值来绘制点
使用相同的函数绘制图形容器以及点/线等

例如,使用“pseudo”(无特殊用途)日志函数:

var ctx=canvas.getContext('2d'),
w=画布宽度,
h=canvas.height-10,//为点/文本留出空间
最大高度=1000,
Axistep=100;
函数myLo