Как автоматически установить symbolSize в свойстве MarkPoint с помощью Echarts Js

Я пытаюсь настроить MarkPoint автоматически, используя конфигурацию echarts, но у меня ничего не получилось, я хочу, чтобы моя булавка автоматически уменьшалась или увеличивалась в зависимости от значений. Что-то вроде этого: echarts pin symbolSize

Но я мог только показать это: echarts symbolSize не работает

Согласно документации, свойство simbolSize может быть числом, массивом или функцией, по умолчанию значение равно 10, если я устанавливаю значение, например, 150, падение слишком велико и является статическим, поэтому мне нужно уменьшить или увеличить в зависимости от на значения.

Это ссылка на документацию, которую я использую для свойства, и это еще одна ссылка на документацию, связанную со свойством.

Пример первого изображения по этой ссылке

Это мой HTML-код:

    <!-- Page Content -->
        <div class="container">

            <div class="row">
                <div class="col-lg-12 text-center" >
                    <h1>Welcome Mr James Bond</h1>
                    <p class="lead">Below your money graphics</p>
                </div>
            </div>
            <!-- /.row -->
            <div class="row">
                <div id="graphic1" class="col-lg-12 text-center" style="width: 900px;height:500px; ">
                </div>
           </div>
  </div>

И это моя конфигурация Javascript:

  // based on prepared DOM, initialize echarts instance
    var myChart = echarts.init(document.getElementById('graphic1'));

// specify chart configuration item and data
var option = {
    title : {
        text: 'Variable income',
        subtext: 'Report period 2016',
       x: 'center'
    },
    tooltip : {
        trigger: 'axis'
    },
    legend: {
        data:['Net Profit Loss','Rate of Return'],
       x: 'left'
    },
    toolbox: {
        show : true,
        showTitle : true,
        feature : {
            mark : {show: true}  ,
            dataView : {show: true, title:'Data-View', readOnly: true,lang: ['Data View', 'close', 'Refresh']},
            magicType : {show: true,title : { line : 'Line',bar : 'Bar'},type: ['line', 'bar']},
            restore : {show: true, title:'Restore'},
            saveAsImage : {show: true, title:'Save'}
        }
    },
    calculable : true,
    xAxis : [
        {
            type : 'category',
            boundaryGap : false,
            data : ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
        }
    ],
    yAxis : [
        {
            type : 'value',
            axisLabel : {
                formatter: '{value} $'
            }
        },
        {
            type: 'value',
            axisLabel: {
                formatter: '{value} %'
            }
        }
    ],

    series : [
        {
            name:'Net Profit Loss',
            type:'line',

            data:[14171.48, 18099.95, 17314.43, 15503.66,26999.20, 49307.32,51494.81,51072.71,56668.29,57705.67],
            markPoint : {
                clickable: false,
                large:true,
                data : [
                    {type : 'max', name: 'Income'},
                    {type : 'min', name: 'Outcome'}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name: 'Average'}
                ]
            }
        },
        {
            name:'Rate of Return',
            type:'line',
            yAxisIndex:1,
            data:[4.89,6.24, 6.66, 6.20,6.35 ,6.05, 6.25, 6.19,6.13,6.24],
            markPoint : {
                clickable: false,
                large:true,
                data : [
                        {type : 'max', name: 'RateMax'},
                    {type : 'min', name: 'RateMin'}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name : 'Average'}
                ]
            }
        }
    ]
};

// use configuration item and data specified to show chart
myChart.setOption(option);

Любая помощь будет оценена, спасибо заранее.

1 ответ

Я хочу предложить другое решение, которое я использую только для решения своей проблемы.

Мое требование аналогично, у меня есть прямоугольник и текст внутри него.

Я хочу FM узел должен быть меньше, а размер символа рассчитывается по длине текста.

Я пишу:

       symbolSize: function (rawValue, {data}) {
    if (typeof data.name === 'undefine') {
       return 0
    }
    return [data.name.length * 10, 40)
}

Вы должны рассчитать длину ваших данных и установить symbolSize вручную.

Другие вопросы по тегам