【问题标题】:How do I change an individual bubble's color and opacity in HighCharts?如何在 HighCharts 中更改单个气泡的颜色和不透明度?
【发布时间】:2016-03-15 12:12:53
【问题描述】:

我创建了一个 HighCharts BubbleChart,并正在尝试调整单个气泡的颜色和不透明度。我似乎能够调整颜色,但不透明度保持在 0.5(当我在浏览器的 DOM 检查器中查看气泡的属性时)。这似乎是某种 HighCharts 的默认设置(对于整个系列?),我如何逐个修改它?

下面是一个显示问题的最小 HighCharts 示例。

另外,Plunkr 上的代码相同https://plnkr.co/edit/Wl7HhVgwOffN1CL3DxtC

如果您在 DOM Inspector 中查看黄色气泡,您会看到它的不透明度为 0.5,尽管在代码中它明确设置为 1。

$(function () {
    $('#container').highcharts({
        chart: {
        type: 'bubble',
        plotBorderWidth: 1,
        zoomType: 'xy'
    },

    title: {
        text: 'Highcharts Bubbles'
    },

    xAxis: {
        gridLineWidth: 1
    },

    yAxis: {
        startOnTick: false,
        endOnTick: false
    },

    plotOptions: {
        bubble: {
            minSize: 3,
            maxSize: 50
        }
    },

    series: [{
        data: [
          {x:9,y:81,z:63},
          {x:98,y:5,z:89,color:"rgba(255,255,0,1)"},
          {x:51,y:50,z:73}
        ],
    }]

    });
});

【问题讨论】:

标签: javascript highcharts


【解决方案1】:

只有当 fillOpacity 设置为 1 时,您才能使用 fillColor 设置颜色来更改颜色的不透明度。

也许你想读这个:https://github.com/highcharts/highcharts/issues/4278

编辑以添加此示例:

{ x:51,
  y:50,
  z:73,
  color: 'rgba(255,0,0,0.5)',
  marker: {
    fillColor:0,
    fillOpacity:1
  }
}

--- 编辑---

在对库进行了一些讨论和审查之后,这似乎是实现这项工作的唯一技巧:

https://plnkr.co/edit/MvAC94ovCwvPQCe3tZo3?p=preview

摘录:

series: [{
            data: [
              {x:9,y:81,z:63},
              { x:98,
                y:5,
                z:89
              },
              { x:51,
                y:50,
                z:73,
                color: {
                    linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },
                    stops: [
                        [0, 'rgba(255,255,0,0.1)'],
                        [1, 'rgba(255,255,0,0.1)']
                    ]
                }
              }
            ],
        }]

【讨论】:

  • 这对我没有任何作用。如果我按照您显示的方式添加标记,它会添加一个不透明度为 1 的黑色标记,我想要的效果是它是一个不透明度为 0.5 的黄色圆圈。
  • 检查这个兄弟plnkr.co/edit/OnPWYBazRfBE99dsI9Fs?p=preview 在这里我应用我之前所说的。请注意定义您可以在各个系列中选择哪些颜色的“颜色”行。
  • 在检查器中,您的两个气泡的不透明度均为 0.5,正如我之前所说,这似乎是全局默认值,我认为您自己感到困惑。当我在 x:51、y:50 处更改圆的不透明度时,不透明度不会改变,它保持在 0.5。你明白我的意思吗?假设在您的示例中,您希望 x:51, y:50 处的圆圈为黄色,不透明度为 1,并且只有那个圆圈,您会怎么做?
  • 兄弟对错误、拼写和更快的解释感到抱歉,事实是我不知道为什么不能从 0 或 1 改变不透明度……这在过去对我有用。但是你可以使用渐变来完成这项工作,我不知道为什么,但是这种方法会覆盖明显的全局不透明度,检查一下,如果你想要功能,这将对你有所帮助:plnkr.co/edit/MvAC94ovCwvPQCe3tZo3?p=preview
  • 如果您发表最后一条评论(带有渐变技巧的评论),我会接受它作为答案。到目前为止,它似乎是 HighCharts 中唯一可行的解​​决方案。
【解决方案2】:

这个怎么样:

series: [{
    data: [
      {x:9,y:81,z:63},
      {x:98,y:5,z:89, color: 'yellow'},
      {x:51,y:50,z:73}
    ],

http://jsfiddle.net/3mtmmfzx/52/

编辑: 100% 不透明度和 50%(默认)是否足以在两者之间切换?

如果是这样,您可以在 'yellow''rgb(255,255,0)' 之间切换

【讨论】:

  • 这绝对具有将黄色更改为不透明度 1 的效果,与系列中的其他圆圈不同的颜色和不透明度。但是,如果我想将黄色的不透明度更改为 1(或 0.5)以外的值,它现在似乎停留在 1。
猜你喜欢
  • 2013-11-17
  • 2013-03-31
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 2015-04-13
  • 2019-04-14
  • 2018-08-30
相关资源
最近更新 更多