Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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
Javascript Plotly.js中单个绘图的多个X轴_Javascript_Plotly_Plotly.js - Fatal编程技术网

Javascript Plotly.js中单个绘图的多个X轴

Javascript Plotly.js中单个绘图的多个X轴,javascript,plotly,plotly.js,Javascript,Plotly,Plotly.js,我有一个轨迹,我想显示X轴的两个测量单位 假设我的绘图以“英寸”作为法线X轴。我还想在第一个X轴正下方的另一个X轴同时显示“厘米” 英寸和厘米有1:1的关系,所以弯曲痕迹不应该有任何有趣的事情 我在布局中尝试了以下方法: var layout = { title: '', xaxis: { autorange: true, rangeslider: {}, type: 'linear', title: 'Inches

我有一个轨迹,我想显示X轴的两个测量单位

假设我的绘图以“英寸”作为法线X轴。我还想在第一个X轴正下方的另一个X轴同时显示“厘米”

英寸和厘米有1:1的关系,所以弯曲痕迹不应该有任何有趣的事情

我在布局中尝试了以下方法:

var layout = {
    title: '',
    xaxis: {
        autorange: true,
        rangeslider: {},
        type: 'linear',
        title: 'Inches'
    },
    xaxis2: {
        autorange: true,
        rangeslider: {},
        type: 'linear',
        title: 'Centimeter',
        overlaying: 'x'
    },
    yaxis: {
        autorange: true,
        type: 'linear',
        title: ''
    },
};
但这不起作用,原因很明显,因为我甚至没有包括厘米转换的细节


你们都知道如何实现这样一种观点吗?是否需要使用匹配的Y数据进行第二次跟踪?

不确定这是否是您真正想要的。但它可以帮助你玩这个

请浏览:

vary=['dot','pen','pencil','scale','stick'];
var x=[0,5,9,12,16]//股份有限公司
var tinc=[]//股份有限公司
var tcm=[]//厘米
var incToCm='';
对于(变量i=0;i

不确定这是你真正想要的。但它可以帮助你玩这个

请浏览:

vary=['dot','pen','pencil','scale','stick'];
var x=[0,5,9,12,16]//股份有限公司
var tinc=[]//股份有限公司
var tcm=[]//厘米
var incToCm='';
对于(变量i=0;i

这非常接近,但如果可能的话,我希望在第一条水平轴线下方有第二条水平轴线。我可能问得太多了:不介意,如果你提供一个你想做的样本图像?也许这能帮助我更好地理解你的问题。谢谢,这真的很接近,但如果可能的话,我真的希望在第一条水平轴线下方有第二条水平轴线。我可能问得太多了:不介意,如果你提供一个你想做的样本图像?也许这能帮助我更好地理解你的问题。谢谢
var y = ['dot','pen','pencil','scale','stick'];
var x = [0,5,9,12,16];//inc
var tinc = []; //inc
var tcm = []; //cm
var incToCm ='';
for (var i = 0; i < x.length; i++) 
{
   incToCm = (x[i] * 2.54)+'cm';
   tcm.push(incToCm);
   tinc.push(x[i]+'inc');
}

var trace1 = {
  x:x,
  y:y,
  type:'bar',
  xaxis:'x',
  yaxis:'y'
}
var trace2 = {
  x:trace1.x,
  y:trace1.y,
  type:trace1.type,
  xaxis:'x2',
  yaxis:'y'
}
var data =[trace1,trace2];
var layout={
  xaxis:{
    tickvals:x,
    ticktext:tinc,
    ticksuffix:'inc',
    tickangle:45,
  }, 
  xaxis2:{
    tickvals:x,
    ticktext:tcm,
    ticklen:18,
    tickangle:45,
    tickwidth:0,
    tickcolor:'#eee',
  },
  showlegend:false
}
Plotly.plot('plotElement', data,layout);