【问题标题】:Highcharts bubble graph, custom markerHighcharts 气泡图,自定义标记
【发布时间】:2017-04-30 07:33:18
【问题描述】:

我有一个气泡系列,我想在一个系列中使用一个点作为自定义标记。标记可以是基于 HighCharts 的 SVG 实现(5 点星)呈现的星形,也可以是 URL 图像。

https://assets.mypatentideas.com/images/fiddle/star.png

 series: [{
            //  color: 'red',

         data: [                    
                { x: -0.95, y: 0.54, z: 0.93},
                { x: -0.15, y: 0.14, z: 1,   marker: {
                symbol: 'star'
            }}   

            ]
        },
        {
            //  color: 'red',
            data: [
                { x: 0.95, y: -0.54, z: 0.93},
                { x: 0.15, y: -0.14, z: 1,   marker: {
                symbol: 'starimage'
            } },


            ]
        }]

这里介绍一下思路:

https://jsfiddle.net/mshaffer/kx62dztf/

对于图像,调整大小以使 w 和 h 等于半径(如果它是真正的气泡)。对于 SVG 星星,渲染星星的半径(中心到任意点)与气泡半径相同。

也许明星需要有自己的系列,这很好。

一些相关的参考资料: https://highcharts.uservoice.com/forums/55896-highcharts-javascript-api/suggestions/3913511-allow-for-custom-symbols-when-using-bubble-charthttp://www.highcharts.com/demo/renderer指向http://jsfiddle.net/highcharts/un9faeed/http://jsfiddle.net/gh/get/jquery/3.1.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/renderer/

【问题讨论】:

  • 所以,我在这篇文章中没有看到的一件事是一个实际问题。您列出了我可能在回复中发布的一些参考资料,因此我们需要知道您根据这些参考资料得出了什么结论,以及您正在寻求帮助的具体内容。
  • "我有一个气泡系列,我想在一个系列中使用一个点作为自定义标记。标记可以是基于 HighCharts 的 SVG 实现(5 点星)渲染的星,或 URL 图片。”如何为高图表气泡制作自定义标记,无论是图像还是 SVG?
  • 这有一种家庭作业的味道。看起来 OP 文本是从某些作业逐字记录的。您可以查看marker 上的 API 文档,这应该可以帮助您。
  • 我猜你最好使用分散系列。查找制作自定义标记的大量示例,并在数据中的点对象中提供每个标记的半径。
  • @wergeld,作业真的,你还在上小学

标签: javascript jquery svg highcharts bubble-chart


【解决方案1】:

uservoice 中的代码(允许气泡使用不同的符号)可以与the demo with custom markers 中的代码结合使用。您需要定义自己的形状,然后您可以将其用作标记符号。

  Highcharts.SVGRenderer.prototype.symbols.star = function(x, y, w, h) {
return [
  'M', x, y + 0.4 * h,
  'L', x + 0.35 * w, y + 0.35 * h,
  'L', x + 0.5 * w, y,
  'L', x + 0.65 * w, y + 0.35 * h,
  'L', x + w, y + 0.4 * h,
  'L', x + 0.75 * w, y + 0.65 * h,
  'L', x + 0.85 * w, y + h,
  'L', x + 0.5 * w, y + 0.8 * h,
  'L', x + w * 0.15, y + h,
  'L', x + 0.25 * w, y + 0.65 * h,
  'Z'
];
};

if (Highcharts.VMLRenderer) {
Highcharts.VMLRenderer.prototype.symbols.star = Highcharts.SVGRenderer.prototype.symbols.star;
}

示例:http://jsfiddle.net/un9faeed/3/

示例:https://jsfiddle.net/kx62dztf/2/

【讨论】:

  • 很好的例子。 URL 符号呢?例如,PNG?
  • 这里有一些代码可以生成任何正多边形来代替圆形...边 > 3,半径与圆形相同:
  • $points = array(); for($a = 0;$a
  • 我上面的链接,图例似乎不像预期的那样。有什么想法吗?
猜你喜欢
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 2015-03-19
  • 2020-08-24
  • 1970-01-01
相关资源
最近更新 更多