Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

194
Views
Highcharts JS remove tips & squared legends for linear chart

TL;DR - want my highcharts chart to look the same as Shopify's

I'm trying to achieve two things that I have found no answer for in the docs, literally tried everything

  1. I want to remove the gridlines tips that are being rendered for each entry
  2. Have the legend symbol be a square (I have tried the symbolRadius, but I want to remove the line in there as well) — basically nothing that I've tried works for a line chart

current state

⬇️

enter image description here

Here are the xAxis & legend properties:

  xAxis: {
    categories: categories: ['Jan', 'Feb', 'Mar', 'Apr', 'Mar', 'May', 'Jun', 'Jul'],
    labels: {
      formatter: function () {
        return moment(this.value).isValid() ? moment(this.value).format('MMM DD') : this.value
      },
      step: getLabelStepBasedOnCategories(categories),
      staggerLines: 1,
      style: {
        color: '#637381',
      },
    },
    crosshair: {
      width: 4.3,
      color: '#DFE3E8',
    },
    gridLineDashStyle: 'dash',
    gridLineWidth: 1,
    gridLineColor: '#DFE3E8',
    tickmarkPlacement: 'inside',
    startOnTick: true,
    endOnTick: true,
  }
  legend: {
    symbolHeight: 12,
    symbolWidth: 12,
    symbolRadius: 3,
    itemDistance: 8,
    align: 'right',

    itemStyle: {
      fontSize: '12px',
      color: '#6d7175',
      fontWeight: 400,
      letterSpacing: '-0.5px',
    },
  },
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

I'm not 100% satisfied with my solution, but I honestly found no other approach.

1.) Try the property tickInterval. With that you should be able to reduce the space between the axis ticks. (Example also in the jsfiddle). Link to the doc

2.) It is possible to overwrite the legend symbol function and draw the label icon with SVG paths.

Highcharts.wrap(Highcharts.Series.prototype, 'drawLegendSymbol', function (proceed, legend) {
    proceed.call(this, legend);


    this.legendLine.attr({
           d: ['M', 0, 10, 'h', 0, 0, 5, 5]
    }).attr({
        'stroke-width': 10
    });
});

Link to the jsfiddle


Addition: It is also possible to overwrite the markers with an icon, the icon will also be displayed in the legend. The downside is, if you disable the markers, also the legend symbol will be disabled.

I found that solution in the Highcharts-Forums -> to the Topic.


Edit 20. Mai 2022

Added link to the new jsFiddle with new styled legend symbols. Add link to SVG Path-Editor tool, to simply modify SVG-Paths.

Link to new jsfiddle with square round borders

Amazing SVG Path-Editor from GitHub user Yqnn

  this.legendLine.attr({
           d: ['M', 2, 2, 'L', 5, 2, 'C', 7, 2, 7, 2, 7, 4, 'L', 7, 7, 'C', 7, 9, 7, 9, 5, 9, 'L', 2, 9, 'C', 0, 9, 0, 9, 0, 7, 'L', 0, 4, 'C', 0, 2, 0, 2, 2, 2]
    }).attr({
        'stroke-width': 7
    });
});
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!