Plot.ly:悬停文本的简单前缀或后缀

时间:2017-01-29 21:57:24

标签: d3.js plotly

我已经尝试阅读文档,但我还没有找到一种简单的方法来为悬停文本添加后缀。 有没有办法向hoverformat添加文字?例如y respondents,其中y是y值。

设置yaxis: {hoverformat: ''}似乎不允许字符串? 我习惯使用FlotChart,你可以简单地放"%y respondents"

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

如果在跟踪中设置text,则可以获得后缀。

  

设置与每个(x,y)对关联的文本元素。如果单身   string,所有数据点上都出现相同的字符串。如果是数组   对于字符串,项目被映射为此跟踪的(x,y)   坐标。

hoverinfohoverinfo: 'text+y')一起,你可以得到你想要的东西(除了需要手动删除的不需要的换行符)。

对于条形图,这似乎不起作用(至少在2017年1月没有)。有必要复制数据并将其写入text属性中的数组(这也解决了换行问题)。

var N = 16,
  x = Plotly.d3.range(N).map(Plotly.d3.random.normal(3, 1)),
  y = Plotly.d3.range(N),

  data = [{
    x: x,
    y: y,
    type: 'scatter',
    mode: 'markers',
    text: 'respondents',
    marker: {
      size: 16
    },
    hoverinfo: 'text+y'
  }],
  layout = {
    hovermode: 'closest',
  };

Plotly.plot('myDiv', data, layout);

//here comes the bar chart
var data = [{
  x: ['Jan', 'Feb', 'Mar'],
  y: [20, 14, 25],
  type: 'bar',
  text: [],
  hoverinfo: 'text'
}];

for (N = 0; N < data[0].y.length; N += 1) {
  data[0].text.push(data[0].y[N] + ' Respondents');
}
Plotly.plot('myBarChart', data);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv" style="width:400px;height:400px;"></div>
<div id="myBarChart" style="width:400px;height:400px;"></div>