Hi,

I think dragging stacked data is probably an undefined interaction for now.
That being said, if you are interested in making a pull request to fix
this, we will really appreciate it.

Thanks

*Ovilia*


On Sat, Mar 11, 2023 at 11:45 PM Stephen Rich <step...@bri-associates.com>
wrote:

>
>
> Hello, I am trying to modify the example at
> https://echarts.apache.org/examples/en/editor.html?c=line-draggable to
> use stacked lines.  When I change the xAxis to type: category the drag
> areas, shown in black below, are offset.  It seems the
> myChart.convertFromPixel('grid', pos); is not returning the correct
> coordinates when the xAxis is set to category.  Is there something I am
> missing or is this a bug?
>
>
>
> Here is the code I am using in the example “Edit Code” tab.
>
> const symbolSize = 20;
>
> const data = [
>
>   [1, 10],
>
>   [2, 20],
>
>   [3, 30],
>
>   [4, 40],
>
>   [5, 50]
>
> ];
>
> const data2 = [
>
>   [1, 90],
>
>   [2, 80],
>
>   [3, 70],
>
>   [4, 60],
>
>   [5, 50]
>
> ];
>
> option = {
>
>   title: {
>
>     text: 'Try Dragging these Points',
>
>     left: 'center'
>
>   },
>
>   grid: {
>
>     top: '8%',
>
>     bottom: '12%'
>
>   },
>
>   xAxis: {
>
> //   min: 1,
>
>    // max: 5,
>
>    //type: 'value',
>
>     type: 'category',
>
>     //axisLine: { onZero: false }
>
>   },
>
>   yAxis: {
>
>     min: 0,
>
>     max: 100,
>
>     type: 'value',
>
>     axisLine: { onZero: false }
>
>   },
>
>   series: [
>
>     {
>
>       id: 'a',
>
>       type: 'line',
>
>       stack: "Total",
>
>        areaStyle: {},
>
>
>
>       symbolSize: symbolSize,
>
>       data: data
>
>     },
>
>      {
>
>       id: 'b',
>
>       type: 'line',
>
>       stack: "Total",
>
>        areaStyle: {},
>
>
>
>       symbolSize: symbolSize,
>
>       data: data2
>
>     }
>
>   ]
>
> };
>
> setTimeout(function () {
>
>   // Add shadow circles (which is not visible) to enable drag.
>
>   myChart.setOption({
>
>     graphic: data.map(function (item, dataIndex) {
>
>       return {
>
>         type: 'circle',
>
>         position: myChart.convertToPixel('grid', item),
>
>         shape: {
>
>           cx: 0,
>
>           cy: 0,
>
>           r: symbolSize / 2
>
>         },
>
>         invisible: false,
>
>         draggable: true,
>
>         ondrag: function (dx, dy) {
>
>           onPointDragging(dataIndex, [this.x, this.y]);
>
>         },
>
>         onmousemove: function () {
>
>           showTooltip(dataIndex);
>
>         },
>
>         onmouseout: function () {
>
>           hideTooltip(dataIndex);
>
>         },
>
>         z: 100
>
>       };
>
>     })
>
>   });
>
> }, 0);
>
> window.addEventListener('resize', updatePosition);
>
> myChart.on('dataZoom', updatePosition);
>
> function updatePosition() {
>
>   myChart.setOption({
>
>     graphic: data.map(function (item, dataIndex) {
>
>       return {
>
>         position: myChart.convertToPixel('grid', item)
>
>       };
>
>     })
>
>   });
>
> }
>
> function showTooltip(dataIndex) {
>
>   myChart.dispatchAction({
>
>     type: 'showTip',
>
>     seriesIndex: 0,
>
>     dataIndex: dataIndex
>
>   });
>
> }
>
> function hideTooltip(dataIndex) {
>
>   myChart.dispatchAction({
>
>     type: 'hideTip'
>
>   });
>
> }
>
> function onPointDragging(dataIndex, pos) {
>
>   data[dataIndex] = myChart.convertFromPixel('grid', pos);
>
>   // Update data
>
>   myChart.setOption({
>
>     series: [
>
>       {
>
>         id: 'a',
>
>         data: data
>
>       },
>
>       {
>
>         id: 'b',
>
>         data: data2
>
>       },
>
>     ]
>
>   });
>
> }
>
>
>
>
>
>
>
> Managing Partner* |* BRI, LLC *|* www.bri-associates.com *|* +1 (503)
> 853-4656
>
>
>

Reply via email to