我有一条迹线,我想为X轴显示两个测量单位。
想象一下,我的情节有"英寸"作为正常的X轴。我还要展示" Centimeter"同时另一个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数据进行第二次跟踪?
答案 0 :(得分:2)
不确定你真的想要。但它可以帮助你玩这个。
请访问:example
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);