@ceeed

Как мне по дефолту отключить ряд "First Y Data 1 — portfolio pnl"на диаграмме?

Я использую библиотеку для построения графика на vue. Мне нужно чтобы по дефолту когда график отстраивался у него не показывался бы только ряд "First Y Data 2 - structure pnl". Я не знаю как это сделать. Перечитал документацию и вроде как нашел там эту опцию, но я может ее не так записываю.. Вот документация
https://apexcharts.com/docs/options/yaxis/

Мне нужно по дефолту отключить ряд name: "First Y Data 1 - portfolio pnl"
Вот график моего компонента

<template>
  <div>
    <div id="chart">
      <h2 class="text-lg text-center font-semibold" v-if="title">
        {{ title }}
      </h2>

      <apexchart
        type="line"
        height="350"
        :options="chartOptions"
        :series="series"
      ></apexchart>
    </div>
  </div>
</template>

<script>
import VueApexCharts from "vue3-apexcharts";
export default {
  components: {
    apexchart: VueApexCharts,
  },
  props: {
    dataset: {
      type: Object,
      default: () => {},
    },
    title: {
      type: String,
      default: "",
    },
  },

  data() {
    return {
      series: [],
      chartOptions: {

        xaxis: {
           type: 'numeric',

          labels: {
            rotate: 0,
          },
        },
        theme: {
          palette: "palette7", // upto palette10
        },
        tickAmount: 'dataPoints',
      grid: {
    show: true,
    borderColor: '#90A4AE',
    strokeDashArray: 0,
    position: 'back',
    xaxis: {
        lines: {
            show: true
        }
    },   
    yaxis: {
        lines: {
            show: true
        }
    },  
    row: {
        colors: undefined,
        opacity: 0.5
    },  
    column: {
        colors: undefined,
        opacity: 0.5
    },  
    padding: {
        top: 0,
        right: 0,
        bottom: 0,
        left: 0
    },  
},

      },

    };
  },

  watch: {
    title(val) {
      console.log("val", val);
    },

    dataset: {
      handler: function(newValue, oldVal) {
        console.log("nununununun", newValue);
        if (newValue && newValue["x"]) {
          let series = [
            {
              name: "First Y Data 1 - portfolio pnl",
              data: this.dataset["y_portf"].map((item, index) => {
                return {
                  x: this.dataset["x"][index],
                  y: item.toFixed(2),
                };
              }),
            },
            {
              name: "First Y Data 2 - structure pnl",
              data: this.dataset["y_struct"].map((item, index) => {
                return {
                  x: this.dataset["x"][index],
                  y: item.toFixed(2),
                };
              }),
            },
          ];
          
          this.series = series;
        }
      },
      deep: true,
      immediate: true,
    },
  },
};
</script>

<style lang="scss" scoped></style>
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Соответствующую настройку просили добавить, но безрезультатно. Так что придётся закостылить.

Добавляем ссылку на компонент графика:

<apexchart
  ref="chart"
  ...

После монтирования скрываем лишнее:

mounted() {
  this.$nextTick(() => {
    this.$refs.chart.hideSeries('здесь имя набора данных, который не хотите показывать');
  });
},
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Isolution666
@Isolution666
Full-Stack Developer
Здравствуйте.
Возможно я не вовремя, или уже не актуально, но мало ли,
вдруг вам нужно скрыть легенды.
Это такие пояснения к графику, цветной круг и пояснение
если по нему кликнуть, то исчезнет из категории та, по которой кликнули

61f5b0c8b8c62018207064.jpeg

https://apexcharts.com/docs/options/legend/ - Документация
Чтобы скрыть легенды, нужно в опциях указать это:
legend: {
      show: false
},


Управлять легендами можно вот так:
https://codepen.io/junedchhipa/pen/YJQKOy?editors=0010

Вдруг кому пригодится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы