将形状(路径)添加到三元图

时间:2019-04-18 21:20:54

标签: javascript plotly plotly.js

我想在scatterternary上添加一个形状(三角形)以突出显示用户放大的位置。我可以捕获缩放的坐标,但是无法生成显示在三元图上的形状。

问题是我只能在x,y坐标中设置形状坐标,而无法与ternary坐标匹配。我相信还有一个由于毛利而抵消的问题。

有什么建议吗?

以下是情节本身的一个示例:

var ternaryTraceZoomLegend = {
        name: 'Ternary',
        type: 'scatterternary',
        mode: 'markers',
        a: [0,1],
        b: [0,1],
        c: [0,1],
        aaxis: 't2',
    };
var layout = {
    //force specific plot size
    autosize: false,
    width: 800,
    height: 800,
    paper_bgcolor: '#fff',
    ternary: {
        sum: 100,
        aaxis: makeAxis('A', 0),
        baxis: makeAxis('B', 0),
        caxis: makeAxis('Both', 0),
        bgcolor: '#fff'
    },

   ////
   //// Here is where I try to add a shape:
    shapes: [{
        type: 'path',
        yref: 'a',
        path: 'M .1 .1 L .1 .3 L .4 .1 Z',
        fillcolor: 'rgba(44, 160, 101, 0.5)',
        line: {
            color: 'rgb(44, 160, 101)'
        }
    }]
Plotly.plot('ternary-graph', [ternaryTraceZoomLegend], layout);

1 个答案:

答案 0 :(得分:0)

我想出了一个解决办法,以防其他人希望根据笛卡尔坐标计算(msys2)为他们的绘图显示三角形缩放插图:

let parameters: [String: String] = ["username" : "test", "password" : "test"]

        Alamofire.request("http://192.168.2.117/evk-ph/api/verify_user.api.php",
                          method: .post,
                          parameters: parameters,
                          encoding: JSONEncoding.default,
                          headers: nil).responseJSON { response in
                             switch response.result {
                             case .success:
                               print(response)
                             case .failure(let error):
                               print(error)
            }
        }