Javascript 是否可以在plot.ly 3D散点图上手动设置比例和刻度?
我有一个基本的plot.ly三维散点图,在三维中指定了各种路径。在阅读了三天的文档之后,我仍然没有找到定义轴的刻度间隔的方法。它似乎是根据我的数据自动生成的,这是我不想要的。实际上,我需要我的三个轴以1:1:1的比例,这可能吗Javascript 是否可以在plot.ly 3D散点图上手动设置比例和刻度?,javascript,plotly,Javascript,Plotly,我有一个基本的plot.ly三维散点图,在三维中指定了各种路径。在阅读了三天的文档之后,我仍然没有找到定义轴的刻度间隔的方法。它似乎是根据我的数据自动生成的,这是我不想要的。实际上,我需要我的三个轴以1:1:1的比例,这可能吗 <style>html, body { height: 100%; }</style> <div id="myDiv" style="width: 100%; height: 100%"></div> <!-- La
<style>html, body { height: 100%; }</style>
<div id="myDiv" style="width: 100%; height: 100%"></div>
<!-- Latest compiled and minified plotly.js JavaScript -->
<script type="text/javascript" src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script>
var data = [
{
x: [-886, -719],
y: [-4785, -5192],
z: [527, 501],
type: 'scatter3d'
},
{
x: [-1782, -92],
y: [1740, -5172],
z: [18, 252],
type: 'scatter3d'
},
{
x: [3844, -450],
y: [35, -5185],
z: [20, 219],
type: 'scatter3d'
},
{
x: [2770, 761],
y: [2360, -5122],
z: [246, 96],
type: 'scatter3d'
},
{
x: [3800, 546],
y: [-3419, -5215],
z: [57, 311],
type: 'scatter3d'
},
{
x: [-340, 775],
y: [-3893, -5189],
z: [573, 135],
type: 'scatter3d'
},
{
x: [-3141, -41],
y: [3677, -5205],
z: [18, 383],
type: 'scatter3d'
},
{
x: [19, -546],
y: [261, -5181],
z: [74, 93],
type: 'scatter3d'
},
{
x: [3, 789],
y: [394, -5165],
z: [112, 421],
type: 'scatter3d'
}
];
var layout = {
// height: 700,
// width: 700,
xaxis: {
range: [-5000, 5000]
},
yaxis: {
range: [-5000, 5000]
}
};
Plotly.newPlot('myDiv', data, layout);
</script>
html,正文{高度:100%;}
风险值数据=[
{
x:[-886,-719],
y:[-4785,-5192],
z:[527501],,
类型:“scatter3d”
},
{
x:[-1782,-92],
y:[1740,-5172],
z:[18252],
类型:“scatter3d”
},
{
x:[3844,-450],
y:[35,-5185],
z:[20219],,
类型:“scatter3d”
},
{
x:[2770761],
y:[2360,-5122],
z:[24696],,
类型:“scatter3d”
},
{
x:[3800546],
y:[-3419,-5215],
z:[57311],
类型:“scatter3d”
},
{
x:[-340775],
y:[-3893,-5189],
z:[573135],
类型:“scatter3d”
},
{
x:[-3141,-41],
y:[3677,-5205],
z:[18383],
类型:“scatter3d”
},
{
x:[19,-546],
y:[261,-5181],
z:[74,93],,
类型:“scatter3d”
},
{
x:[3789],
y:[394,-5165],
z:[112421],,
类型:“scatter3d”
}
];
变量布局={
//身高:700,
//宽度:700,
xaxis:{
范围:[-50005000]
},
亚克斯:{
范围:[-50005000]
}
};
Plotly.newPlot('myDiv',数据,布局);
代码演示:我对javascript plotly api不太熟悉,这个答案是用python编写的。希望这对你的处境也有帮助 如果我正确理解了您的问题,您需要为轴设置tick模式,并且根据您选择的模式,您还需要设置NTick;勾选0和dticks;或滴答声 以下内容摘自:一个难以有效搜索但非常有用的页面。页面的javascript版本为: tickmode(枚举:“自动”|“线性”|“数组”) 设置此轴的刻度模式。如果为“自动”,则通过
nticks
设置刻度数。如果是“线性”,则记号的位置由起始位置tick0
和记号步dtick
(如果提供了tick0
和dtick
,则“线性”是默认值)。如果为“数组”,则通过tickvals
设置记号的位置,记号文本为ticktext
。(“如果提供了tickvals
,则数组”是默认值)
这同样适用于python,但在场景选项中,有一种方法可以使用下面的xaxis(或yaxis或zaxis)示例代码中的range(list)选项设置x、y或z轴的范围
scene = dict(xaxis=dict(gridcolor='rgb(0, 0, 0)',
zerolinecolor='rgb(0, 0, 0)',
showbackground=False,
range = (minX,maxX)),
yaxis=dict(gridcolor='rgb(0, 0, 0)',
zerolinecolor='rgb(0, 0, 0)',
showbackground=False,
range = (minY, maxY)),
zaxis=dict(gridcolor='rgb(0, 0, 0)',
zerolinecolor='rgb(0, 0, 0)',
showbackground=False,
range = (minZ, maxZ)))
fig['layout'].update(scene)
这是文档:对于java,当然可以。这些信息可以在如何为3d图表设置轴的格式中看到 代码方面,您想要的是这样的东西
var layout = {
scene:{
aspectmode: "manual",
aspectratio: {
x: 1, y: 1, z: 1,
},
xaxis: {
nticks: 100,
range: [-5000, 5000],
},
yaxis: {
nticks: 100,
range: [-5000, 5000],
},
zaxis: {
nticks: 100,
range: [-5000, 5000],
}},
};