Javascript Plotly.js添加标记会向x轴添加填充
在向折线图添加标记时,是否有方法防止Plotly更改x轴上的填充。 请参阅下面的两个片段。唯一的区别是第24行,Javascript Plotly.js添加标记会向x轴添加填充,javascript,d3.js,plotly,Javascript,D3.js,Plotly,在向折线图添加标记时,是否有方法防止Plotly更改x轴上的填充。 请参阅下面的两个片段。唯一的区别是第24行,“行”更改为“行+标记” 第一个不带标记的代码段: 变量布局={ xaxis:{ 这是真的, 勾选模式:“自动”, nticks:15, 角度:45, rangemode:'tozero', }, }; 变量trace1={ x:[“第1周”、“第2周”、“第3周”、“第4周”、“第5周”、“第6周”、“第7周”、“第8周”], y:[10,15,13,17,10,15,13,17]
“行”
更改为“行+标记”
第一个不带标记的代码段:
变量布局={
xaxis:{
这是真的,
勾选模式:“自动”,
nticks:15,
角度:45,
rangemode:'tozero',
},
};
变量trace1={
x:[“第1周”、“第2周”、“第3周”、“第4周”、“第5周”、“第6周”、“第7周”、“第8周”],
y:[10,15,13,17,10,15,13,17],
键入:“散布”,
模式:“行”,
};
var数据=[trace1];
Plotly.newPlot('myDiv',数据,布局);
这有点让人困惑,因为实际上y轴是关闭的。
无论如何,可以通过将yaxis
设置为showgrid:false
然后偏移上方的yaxis层来重新定位标签来解决此问题
这可以在css中完成,就像我所做的那样,也可以在Javascript中完成
我可能在这里没有相同的像素(设置为102px),但你应该明白了
.Yaxis上一层{
转换:转换(102px,100px);
}
变量布局={
亚克斯:{
showgrid:false,
},
xaxis:{
这是真的,
勾选模式:“自动”,
nticks:15,
角度:45,
rangemode:'tozero',
},
};
变量trace1={
x:[“第1周”、“第2周”、“第3周”、“第4周”、“第5周”、“第6周”、“第7周”、“第8周”],
y:[10,15,13,17,10,15,13,17],
键入:“散布”,
模式:“行+标记”,
};
var数据=[trace1];
Plotly.newPlot('myDiv',数据,布局);
我也遇到了同样的问题,我找到的解决方案是将自动范围设置为假并指定x轴范围。见:
固定示例:
变量布局={
xaxis:{
这是真的,
勾选模式:“自动”,
nticks:15,
角度:45,
rangemode:'tozero',
范围:[0,7]
},
};
变量trace1={
x:[“第1周”、“第2周”、“第3周”、“第4周”、“第5周”、“第6周”、“第7周”、“第8周”],
y:[10,15,13,17,10,15,13,17],
键入:“散布”,
模式:“行+标记”,
};
var数据=[trace1];
Plotly.newPlot('myDiv',数据,布局);
你能说得更具体些吗?在chrome(Windows/Mac/Linux)上,x轴上的填充是相同的。我甚至把它们都保存为图像并叠加在一起——除了顶点上的点,它们是相同的。您认为哪种浏览器/操作系统有区别?你能发布一个截图吗?我添加了一个截图,显示了不同之处。我在Chrome(Windows)上。明白了,我想我有一个不错的答案给你…谢谢。绝对是个好答案。然而,它仍然在做同样的事情,改变x轴。现在我们只是移动y轴,所以它不那么明显。在这个玩具示例中,它并没有太大的区别——但在我的实际用例中,它非常明显。看这个:听起来不错。期待着看到答案。谢谢只是一个肿块。我很乐意看到你的建议。@Wessi-嗯,我还在玩它-我的想法有点做作…只要把问题保持开放,我会在有机会的时候玩它。奇怪的是,它们的缩放方式不同-没有真正的原因,我们将仔细查看plotlyjs源代码并找到它的底部…请注意,当提供了range
时,autorange
会自动设置为False
。