在图例中有没有数据的痕迹

plotly have trace without data in legend

假设我想显示一组条形图,其中每个条形图可以是一个选项:A、B 或 C,每个都有不同的颜色。我想显示条形图,但如果 none 条形图属于特定类别,该类别仍会显示在图例中。不幸的是,没有颜色的类别似乎被删除了。请注意在此示例中,标签为 'C' 的类别(应为蓝色)是如何从图例中删除的:

data = [
{
x: [1, 3, 4],
y: [20, 14, 23],
type: 'bar',
name: 'A',
marker: {color: '#00FFFF'}},
{
x: [2, 5, 6],
y: [8, 6, 2],
type: 'bar',
name: 'B',
marker: {color: '#FF00FF'}},
{
x: [],
y: [],
type: 'bar',
name: 'C'
marker: {color: '#FF0000'}}]

我如何才能确保始终显示 C(或任何没有数据的颜色)?

您可以使用高度为零的数据点添加初始化第三条轨迹:

{'x': [0], 'y': [0], 'type': 'bar'}

交互示例:https://plot.ly/~chris/16792.embed

如果没有数据,您可能还想删除悬停文本。使用 hoverinfo (https://plot.ly/python/reference/#bar-hoverinfo).

自定义悬停文本

{'x': [0], 'y': [0], 'type': 'bar', 'hoverinfo': 'none'}

示例图表:https://plot.ly/~chris/16795.embed

具有空数据数组的跟踪被假定为不可见。这相当于在trace对象中设置了visible: false

您可以通过在数据数组中输入 null 值来巧妙地欺骗:

data = [{
  x: [1, 3, 4],
  y: [20, 14, 23],
  type: 'bar',
  name: 'A',
  marker: {color: '#00FFFF'}
}, {
  x: [2, 5, 6],
  y: [8, 6, 2],
  type: 'bar',
  name: 'B',
  marker: {color: '#FF00FF'}
}, {
  x: [null],
  y: [null],
  type: 'bar',
  name: 'C'
  marker: {color: '#FF0000'}
}]

这给出了