Как использовать собственный символ маркера ('[' и ']') в Plotly.js

Я работаю над проектом, который требует графиков. Я использую Plotly с JS.

Мне нужны специальные символы «[» или «]» в качестве маркеров на графике.
Хотя я предпочитаю без использования SVG, я открыт для изменений.
Как?

Я попробовал:
HTML-код:

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Graphs</title>
    <script src = "https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
    <div id = "graph-1"></div>
    <script src = "index.js"></script>
</body>
</html>

JS-код:

index.js

graph_1_data = [{
    x: [1, 2, 3],
    y: [1, 2, 3],
    mode: 'lines+markers',
    line: {
        shape: 'linear',
        color: 'blue'
    },
    marker: { 
        symbol: "[", #Here even though I give '[' it's showing circle[it's default probably] on the plotted graph
        size: 15
    }
}]
graph_1_layout = {
    title: "Graph-1"
}
Plotly.newPlot('graph-1',graph_1_data, graph_1_layout); 

Пожалуйста, помогите мне получить пользовательские маркеры (точнее, '[' и ']') в Plotly JS.

Вы не можете добавить его в качестве маркера, вы можете добавить один из следующих: plotly.com/javascript/reference/scatter/#scatter-marker-symb‌​ol

Yash Maheshwari 09.06.2024 11:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Отказ от ответственности: я не являюсь пользователем Plotly.js. Предлагаемое решение было сделано на примере, приведенном на форуме Plotly.

Вам нужно будет заменить lines+markers на lines+text, а затем использовать свойство text объекта графика Plotly, чтобы указать отдельные маркеры для каждой из координат.

Например:

var graph_1_data = [{
    x: [1, 2, 3],
    y: [1, 2, 3],
    mode: 'lines+text',
    text: ['[','[','['],
    line: {
        shape: 'linear',
        color: 'blue'
    },
    textfont: {
      size: 25,
      color: 'blue'
    }
}]
graph_1_layout = {
    title: "Graph-1"
}
Plotly.newPlot('graph-1',graph_1_data, graph_1_layout); 
<script src = "https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id = "graph-1"></div>

Или, чтобы не заполнять массив text вручную с помощью [:

const xCoords = [1,2,3];
const yCoords = [1,2,3];
const markers = new Array(xCoords.length).fill('[');

var graph_1_data = [{
    x: xCoords,
    y: yCoords,
    mode: 'lines+text',
    text: markers,
// ... the rest of the code
}]

Идеальный. Спасибо. Изменение его на строку+текст работало как Charm.

Benny Lazarus Kamal 10.06.2024 07:17

@BennyLazarusKamal Рад, что смог помочь. Есть одна вещь, которая может вас беспокоить позже — всплывающая подсказка. Наведите указатель мыши на любой из маркеров, чтобы понять, что я имею в виду. Существуют различные способы справиться с этим (из того, что я видел), но вы можете сделать два: 1) полностью скрыть всплывающую подсказку, 2) настроить всплывающую подсказку так, чтобы она отображала только значение Y. Дайте мне знать, если вам что-то из этого нужно, и я отредактирую ответ.

FiddlingAway 10.06.2024 17:36

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