使用html5画布和纯javascript绘制散点图没有对数轴的库
我发布我的问题是因为我在任何地方都找不到信息,大多数教程都需要使用奇特的库,我只是不想从包含以下数据示例的两个json多维数组中绘制html5画布散点图:使用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" }, 我尝试重新创建的示例类似于 我遇到的最大问题是让画布使用对数
{ 'dataset1' [ { "p0" : "0.69", "log(p0)" : "14", "p0_name" : "cn95" }, ]
对于另一个轴
{ "p1" : "0.69", "log(p1)" : "14", "p1_name" : "dn95" },
我尝试重新创建的示例类似于
我遇到的最大问题是让画布使用对数刻度。您可以从示例链接中看到从数据中查看某些内容所需的链接。一把小提琴将是伟大的发挥和创造我自己的!这就是我到目前为止所做的:
这是我使用的数据,画布不能使用开箱即用的对数比例,你必须为你的点提供一个函数来自己缩放它们 我建议采用以下程序:
- 具有取一个轴及其最大值的函数
- 在函数内部进行规范化
- 然后对值应用对数函数并返回
- 使用画布宽度/高度的规格化值来绘制点
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无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们
我建议采用以下程序:
- 具有取一个轴及其最大值的函数
- 在函数内部进行规范化
- 然后对值应用对数函数并返回
- 使用画布宽度/高度的规格化值来绘制点
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无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们
我建议采用以下程序:
- 具有取一个轴及其最大值的函数
- 在函数内部进行规范化
- 然后对值应用对数函数并返回
- 使用画布宽度/高度的规格化值来绘制点
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无法使用开箱即用的对数比例,您必须为您的点提供一个函数来自行缩放它们
我建议采用以下程序:
- 具有取一个轴及其最大值的函数
- 在函数内部进行规范化
- 然后对值应用对数函数并返回
- 使用画布宽度/高度的规格化值来绘制点
var ctx=canvas.getContext('2d'),
w=画布宽度,
h=canvas.height-10,//为点/文本留出空间
最大高度=1000,
Axistep=100;
函数myLo